CachedRowSet 是非连接的 RowSet,数据行均被缓冲至本地内存,但并未保持与数据库
服务器的连接。DmJdbcDriver15.jar 和 DmJdbc16.jar 中 dm.jdbc.rowset.DmdbCachedRowSet
类是达梦对于接口 javax.sql.rowset.CachedRowSet 的实现。
1 . 使 用 URL 、 用 户 名 、 密 码 和 一 个 查 询 SQL 语 句 作 为 设 置 属 性 , 创 建 一 个
DmdbCachedRowSet 对象。RowSet 使用 execute 方法完成 CachedRowSet 对象的填充。完成
execute 方法执行后,可以像使用 java.sql.ResultSet 对象方法一样,使用 RowSet 对象返回、
滚动、插入、删除或更新数据。
/* 创建 DmdbCachedRowSet 对象示例 */ String sql = "SELECT productid,name,author FROM production.product"; CachedRowSet crs = new DmdbCachedRowSet(); crs.setUrl("jdbc:dm://localhost:5236"); crs.setUsername("SYSDBA"); crs.setPassword("SYSDBA"); crs.setCommand(sql); crs.execute(); while (crs.next()) { System.out.println("productid: " + crs.getInt(1)); System.out.println("name: " + crs.getString(2)); System.out.println("author: " + crs.getString(3)); }
2、CachedRowSet 对象也可以通过调用 populate 方法,使用一个已经存在的 ResultSet
对象填充。完成填充后,便可以像操作 ResultSet 对象一样,返回、滚动、插入、删除或更
新数据。
/* 使用 populate 方法填充代码片段 */ // 执行查询,获取 ResultSet 对象 String sql = "SELECT productid,name,author FROM production.product"; ResultSet rs = stmt.executeQuery(sql); // 填充 CachedRowSet CachedRowSet crs = new DmdbCachedRowSet(); crs.populate(rs);
3、其他功能特点
创建一个 CachedRowSet 的拷贝:
CachedRowSet copy = crs.createCopy();
创建一个 CachedRowSet 的共享:
CachedRowSet shard = crs.createShared();
4、CachedRowSet 限制
为此时已经断开了与数据库服务器的连接,不能将这些属性设置到返回数据的同一
个连接上。
https://xpanx.com/
评论