原文地址: http://www.yiidian.com/jdbc/j...html
与ResultSet相比,RowSet默认是可滚动、可更新、可序列化的结果集,并且做为JavaBean使用,所以能方便的在网络上传输,用于同步两端的数据,对于离线RowSet而言,程序在建立RowSet时已经把数据从底层数据库读取到了内存,所以能够充分利用计算机的内存,从而下降数据库服务器的负载,提升程序性能。RowSet接口继承了ResultSet接口。java
RowSet接口的实现类以下:mysql
使用RowSet的优势以下:sql
JdbcRowSet rowSet = RowSetProvider.newFactory().createJdbcRowSet(); rowSet.setUrl("jdbc:mysql://localhost:3306/test"); rowSet.setUsername("root"); rowSet.setPassword("root"); rowSet.setCommand("select * from t_user"); rowSet.execute();
NoListenerRowSetDemo:数据库
package com.yiidian; import javax.sql.rowset.JdbcRowSet; import javax.sql.rowset.RowSetProvider; import java.io.*; import java.sql.*; /** * 一点教程网 - http://www.yiidian.com */ public class NoListenerRowSetDemo { public static void main(String args[])throws Exception { Class.forName("com.mysql.jdbc.Driver"); JdbcRowSet rowSet = RowSetProvider.newFactory().createJdbcRowSet(); rowSet.setUrl("jdbc:mysql://localhost:3306/test"); rowSet.setUsername("root"); rowSet.setPassword("root"); rowSet.setCommand("select * from t_user"); rowSet.execute(); //移动光标,获取记录 while (rowSet.next()) { System.out.print("编号: " + rowSet.getInt(1)+"\t"); System.out.print("名称: " + rowSet.getString(2)+"\t"); System.out.print("密码: " + rowSet.getString(3)); System.out.println(); } } }
要使用JdbcRowSet执行事件处理,您须要在JdbcRowSet的addRowSetListener() 方法中添加RowSetListener的实例。segmentfault
RowSetListener接口提供3种必须实现的方法:缓存
public void cursorMoved(RowSetEvent event); public void rowChanged(RowSetEvent event); public void rowSetChanged(RowSetEvent event);
HasListenerRowSetDemo:服务器
package com.yiidian; import javax.sql.RowSetEvent; import javax.sql.RowSetListener; import javax.sql.rowset.JdbcRowSet; import javax.sql.rowset.RowSetProvider; import java.io.*; import java.sql.*; /** * 一点教程网 - http://www.yiidian.com */ public class HasListenerRowSetDemo { public static void main(String args[])throws Exception { Class.forName("com.mysql.jdbc.Driver"); JdbcRowSet rowSet = RowSetProvider.newFactory().createJdbcRowSet(); rowSet.setUrl("jdbc:mysql://localhost:3306/test"); rowSet.setUsername("root"); rowSet.setPassword("root"); rowSet.setCommand("select * from t_user"); rowSet.execute(); //给RowSet添加事件监听处理 rowSet.addRowSetListener(new MyListener()); //移动光标,获取记录 while (rowSet.next()) { System.out.print("编号: " + rowSet.getInt(1)+"\t"); System.out.print("名称: " + rowSet.getString(2)+"\t"); System.out.print("密码: " + rowSet.getString(3)); System.out.println(); } } } //事件监听处理类 class MyListener implements RowSetListener { public void cursorMoved(RowSetEvent event) { System.out.println("光标移动..."); } public void rowChanged(RowSetEvent event) { System.out.println("光标改变..."); } public void rowSetChanged(RowSetEvent event) { System.out.println("RowSet改变..."); } }
欢迎关注个人公众号::一点教程。得到独家整理的学习资源和平常干货推送。
若是您对个人系列教程感兴趣,也能够关注个人网站: yiidian.com