使用RowSet使用步骤
RowSet是一种在disconnected和connected环境下操作表列数据的接口模型。RowSet包括两个重要的集合类:CachedRowSet ,FilteredRowSet ,JdbcRowSet ,Joinable ,JoinRowSet ,Predicate ,WebRowSet。其中CachedRowSet和JDBCRowSet应用最多。
1.CachedRowSet
CachedRowSet有两个重要的作用,一是在应用程序的多个组件间传递来自数据库的数据,二是包装ResultSet提供滚动的,可更新的结果集。
由于CachedRowSet对数据库是disconnected,serializable的,它只是在从数据源取得数据时和对数据源进行更新时和数据库是connected的。因此,它可以在不同的组件间传递数据而不必和数据源保持connected,例如把在运行在服务器端的EJB组件查询结果通过net传递给web browser的客户端。
CachedRowSet对表列数据提供了定位每一行的功能,如forward, backward或到一个特定的行(这个ResultSet是不提供的);同时,对封装的数据也是可更新的,对数据更新完后,只要调用acceptChanges();方法即可把数据更新到数据源中。
如:
ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEES");
CachedRowSet crs = new CachedRowSet();
crs.populate(rs);
crs.moveToInsertRow();
crs.updateString("Name", "Shakespeare");
crs.updateInt("ID", 10098347);
crs.updateShort("Age", 58);
crs.updateInt("Sal", 150000);
crs.insertRow();
crs.moveToCurrentRow();
crs.acceptChanges();
除了上述这些作用外,它还提供了监听器机制,检索RowSetMetaData
另外,CachedRowSet也提供类似ResultSet的
prepareStatement功能。
crs.setCommand("SELECT FIRST_NAME, LAST_NAME, ADDRESS FROM CUSTOMERS" +"WHERE CREDIT_LIMIT > ? AND REGION = ?");
crs.setInt(1, 5000);
crs.setString(2, "West");
crs.execute();
2.JDBCRowSet
JDBCRowSet是一种对ResultSet进行包装的connected下的组件,它使ResultSet可以作为JavaBean组件来使用。同时,也具有RowSet的双向可滚动,更新的特性。它实际上相当于把数据库的连接,查询,以及取得查询结果的功能集中到一起,省去数据库连接等所需一系列的异常处理等,大大减少了程序的编制量。如对一个数据库中表userInfo进行查询,可用如下语句:
JdbcRowSet jrs = new JdbcRowSet();
jrs.setCommand("SELECT * FROM userInfo WHERE TYPE = ?");
jrs.setURL("jdbc:myDriver:myAttribute");
jrs.setUsername("cervantes");
jrs.setPassword("sancho");
jrs.setString(1, "BIOGRAPHY");
jrs.execute();
,若用原来的jdbc数据库连接方式,则需要注册Dirver,从数据库中取得connection等操作。
3.WebRowSet
WebRowSet是从CachedRowSet的继承而来,它主要的功能是以标准XML的形式对ResultSet进行读写,从而实现Web间的数据传输。..
4.FilteredRowSet
FilteredRowSet以可扩展的方式对RowSet提供一种过滤功能,在过滤过程中RowSet和数据源处于disconnected状态
5.JoinRowSet
JoinRowSet描述了多个RowSet之间的关系机制(处于disconnected状态),类似于SQL中join的多表查询机制。
本文地址:http://www.45fan.com/dnjc/73195.html