原文地址: 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