Java 6 RowSet 使用完全剖析(1)
Java 6 RowSet 使用完全剖析(1)
关键字: rowset
javax.sql.rowset 自 JDK 1.4 引入,从 JDK 5.0 开始提供了参考实现。它主要包括 CachedRowSet,WebRowSet,FilteredRowSet,JoinRowSet 和 JdbcRowSet。 除了 JdbcRowSet 依然保持着与数据源的连接之外,其余四个都是 Disconnected RowSet。
相比较 java.sql.ResultSet 而言,RowSet 的离线操作能够有效的利用计算机越来越充足的内存,减轻数据库服务器的负担,由于数据操作都是在内存中进行然后批量提交到数据源,灵活性和性能都有了很大的提高。RowSet 默认是一个可滚动,可更新,可序列化的结果集,而且它作为 JavaBeans,可以方便地在网络间传输,用于两端的数据同步。
类继承结构
RowSet 继承自 ResultSet,其他五个 RowSet 接口均继承自 RowSet。下图是它们的继承关系。
图 1. 继承结构图
实验环境
本文示例的实验环境如下:
Java 环境:Sun JDK 6.0
数据库:derby-10.3.1.4
数据库名:TESTDB
数据库用户名及密码:均使用 derby 默认用户名和密码。
表及测试数据:创建两个表:CUSTOMERS 和 ORDERS,并分别插入测试数据。
示例代码以附件形式提供 下载。
表 2. 表 CUSTOMERS ID NAME REMARK
1 Tom Tom is VIP
2 Jim null
表 3. 表 ORDERS ID USER_ID PRODUCT
1 1 Book
2 1 Computer
3 2 Phone
使用 CachedRowSet
填充 CachedRowSet 的两种方式
CachedRowSet 提供了两个用来获取数据的方法,一个是 execute(),另一个是 populate(ResultSet)。
使用 execute() 填充 CachedRowSet 时,需要设置数据库连接参数和查询命令 command,如下示例代码:
清单 1. 使用 execute()
Java代码
cachedRS.setUrl(DBCreator.DERBY_URL);
cachedRS.setCommand(DBCreator.SQL_SELECT_CUSTOMERS); // derby 默认用户名和密码都是 "APP",也可以不设置。 cachedRS.setUsername("APP"); //$NON-NLS-1$
cachedRS.setPassword("APP"); //$NON-NLS-1$
cachedRS.execute();
cachedRS.setUrl(DBCreator.DERBY_URL);
cachedRS.setCommand(DBCreator.SQL_SELECT_CUSTOMERS); // derby 默认用户名和密码都是 "APP",也可以不设置。 cachedRS.setUsername("APP"); //$NON-NLS-1$
cachedRS.setPassword("APP"); //$NON-NLS-1$
cachedRS.execute()
相关文档:
今天在CSDN逛论坛的时候无意中发现有人问在Java中是否有ReadOnly操作方式的集合,说实话在以往开发中各种集合用的很多,但是这个问题还真没有注意过。去Java的官方API文档查了一下,Collections中还真有这么个方法支持,方法原型如下:
unmodifiableCollection
public static <T> Collection<T> unmodifiable ......
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。根据我的经验,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、Java编程入门类
对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你 ......
作者
:
李志涛
邮箱地址
:lizhitao67116961@163.com
深圳优网科技有限公司
前几天看到有某位网友写了用http进行断点下载文件,但是网上没有看到ftp断点下载的文章或代码,现在本人写了一下。经过测试没有问题。请大家多多指教。如有疏漏的地方请各位技术友人指出。本人不胜感激。
package
test.d ......
作者 : 李志涛
邮箱地址 :lizhitao67116961@163.com
深圳优网科技有限公司
前几天看到有某位网友写了用http进行断点下载文件,但是网上没有看到ftp断点下载的文章或代码,现在本人写了一下。经过测试没有问题。请大家多多指教。如有疏漏的地方请各位技术友人指出。本人不胜感激。
package t ......
大家好!
我是一个编程爱好者。
经过专业课的学习,有一定的编程基础,对C/C++、ASP.ENT以及数据库比较熟悉。
现在,我在一个Java培训班学习。
空闲之余,在这里找到了一个交流的平台, ......