RowSet的使用

RowSet子类:
RowSet接口下包含 JdbcRowSet,CatchedRowSet,FilteredRowSet,JionRowSet,WebRowSet.
除了JdbcRowSet以外,其他都是离线RowSet,并且CatchedRowSet是所有离线RowSet的父类,CatchedRowSet除了实现了Rowset接口外,还实现了Joinable接口。
RowSet作用:
RowSet非常重要的一个功能就是能对数据库进行离线操作,即在操作数据库数据是Connection不必一直处于打开状态,因为RowSet把数据加载到了JVM中,当然修改的数据提交时是要打开Connection的。

1.创建RowSet

以JdbcRowSet为例

RowSetFactory factory = RowSetProvider.newFactory();
JdbcRowSet jdbcRowSet = factory.creatJdbcRowSet();

2.RowSet获取数据方式(两种):

1.1 为RowSet传入数据库连接信息,指定sql语句,RowSet会查询数据并且返回数据。

jdbcRowSet.setUrl("xxxxx");
jdbcRowSet.setUserName("xxxxx");
jdbcRowSet.setPassWord("xxxxx");
jdbcRowSet.setCommand("xxxxx");//设置sql语句

2.2 为RowSet传入ResultSet对象
以cachedRowSet为例

cachedRowSet.populate(resultSet);//从resultSet中获取数据
//下面的对象的创建代码未列出,只是为力说明:CachedRowSet是离线的RowSet所以数据库连接相关的资源都可以释放。
resultSet.close();
statement.close();
connection.close();

3.离线RowSet的数据提交

//当然,对于离线操作,在jvm做的修改并不会同步到数据库,所以要再次为RowSet传入Connection
Connection conn = DriverManager.getConnection(url,username,password);
//打开事务
conn.setAutoCommit(false);
//提交修改
cachedRowSet.acceptChanges(conn);

RowSet具体用法与ResultSet差不多。

4.离线RowSet的分页操作

如果数据庞大,使用离线RowSet,内存可能吃不消,甚至导致数据溢出,这个时候就要对RowSet进行分页。

基本方法:
propulate(ResultSet rs,int startRow) :指定加载结果集,并且指定从第几行开始操作。
setPageSize(int pageSize) :指定一页有多上行记录。
previousPage() :翻到上一页。
nextPage() : 翻到下一页。
这些方法用起来很简单,具体就用法不给出代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值