CSDN博客

img xujinsong

关于RowSet的使用(1)

发表于2004/7/1 17:34:00  1591人阅读

           RowSet是一种在disconnectedconnected环境下操作表列数据的接口模型。RowSet包括两个重要的集合类:CachedRowSet FilteredRowSet JdbcRowSet Joinable JoinRowSet Predicate WebRowSet。其中CachedRowSetJDBCRowSet应用最多。

1CachedRowSet

CachedRowSet有两个重要的作用,一是在应用程序的多个组件间传递来自数据库的数据,二是包装ResultSet提供滚动的,可更新的结果集。

由于CachedRowSet对数据库是disconnectedserializable的,它只是在从数据源取得数据时和对数据源进行更新时和数据库是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();
 
 

2JDBCRowSet

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等操作。

3WebRowSet

WebRowSet是从CachedRowSet的继承而来,它主要的功能是以标准XML的形式对ResultSet进行读写,从而实现Web间的数据传输。..

4FilteredRowSet

FilteredRowSet以可扩展的方式对RowSet提供一种过滤功能,在过滤过程中RowSet和数据源处于disconnected状态

5JoinRowSet

JoinRowSet描述了多个RowSet之间的关系机制(处于disconnected状态),类似于SQLjoin的多表查询机制。

 

   Author:Jason

 

0 0

相关博文

我的热门文章

img
取 消
img