使用JDBC的CachedRowSet实现将数据源中的数据读取到内存中进行离线操作
2009-03-25 15:19
393 查看
以前用.NET的DataSet,使用很方便且强大,发现JDBC也有类似的CachedRowSet 也还不错使用如下:
1、
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
2、
CachedRowSet crs=new CachedRowSetImpl();
3、
//返回CachedRowSet结果集合,使用 populate用一个有数据的 CachedRowSet 来填充另一个CachedRowSet。
public CachedRowSet querySqlToCachedRowset(String sql)throws Exception{
if (conn != null) {
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
crs.populate(rs);
} catch (Exception e) {
e.printStackTrace();
} finally {
toClose();
}
}
return crs;
}
在网上查资料的得知:
CachedRowSet实现了RowSet是最常用的一种 RowSet。其他三种 RowSet(WebRowSet,FilteredRowSet,JoinRowSet)都是直接或间接继承于它并进行了扩展。它提供了对数据库的离线操作,可以将数据读取到内存中进行增删改查,再同步到数据源。可串行化,可作为 JavaBeans 在网络间传输。支持事件监听,分页等特性。
javax.sql.rowset 自 JDK 1.4 引入,从 JDK 5.0 开始提供了参考实现。它主要包括 CachedRowSet,WebRowSet,FilteredRowSet,JoinRowSet 和 JdbcRowSet. 除了 JdbcRowSet 依然保持着与数据源的连接之外,其余四个都是 Disconnected RowSet.
相比较 java.sql.ResultSet 而言,RowSet 的离线操作能够有效的利用计算机越来越充足的内存,减轻数据库的负担,由于数据操作都是在内存中进行然后批量提交到数据源,灵活性和性能都有了很大的提高。RowSet 默认是一个可滚动,可更新,可序列化的结果集,而且它作为 JavaBeans,可以方便地在网络间传输,用于两端的数据同步。
1、
import javax.sql.rowset.CachedRowSet;
import com.sun.rowset.CachedRowSetImpl;
2、
CachedRowSet crs=new CachedRowSetImpl();
3、
//返回CachedRowSet结果集合,使用 populate用一个有数据的 CachedRowSet 来填充另一个CachedRowSet。
public CachedRowSet querySqlToCachedRowset(String sql)throws Exception{
if (conn != null) {
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
crs.populate(rs);
} catch (Exception e) {
e.printStackTrace();
} finally {
toClose();
}
}
return crs;
}
在网上查资料的得知:
CachedRowSet实现了RowSet是最常用的一种 RowSet。其他三种 RowSet(WebRowSet,FilteredRowSet,JoinRowSet)都是直接或间接继承于它并进行了扩展。它提供了对数据库的离线操作,可以将数据读取到内存中进行增删改查,再同步到数据源。可串行化,可作为 JavaBeans 在网络间传输。支持事件监听,分页等特性。
javax.sql.rowset 自 JDK 1.4 引入,从 JDK 5.0 开始提供了参考实现。它主要包括 CachedRowSet,WebRowSet,FilteredRowSet,JoinRowSet 和 JdbcRowSet. 除了 JdbcRowSet 依然保持着与数据源的连接之外,其余四个都是 Disconnected RowSet.
相比较 java.sql.ResultSet 而言,RowSet 的离线操作能够有效的利用计算机越来越充足的内存,减轻数据库的负担,由于数据操作都是在内存中进行然后批量提交到数据源,灵活性和性能都有了很大的提高。RowSet 默认是一个可滚动,可更新,可序列化的结果集,而且它作为 JavaBeans,可以方便地在网络间传输,用于两端的数据同步。
CachedRowSet | 最常用的一种 RowSet。其他三种 RowSet(WebRowSet,FilteredRowSet,JoinRowSet)都是直接或间接继承于它并进行了扩展。它提供了对数据库的离线操作,可以将数据读取到内存中进行增删改查,再同步到数据源。可串行化,可作为 JavaBeans 在网络间传输。支持事件监听,分页等特性。 |
WebRowSet | 继承自 CachedRowSet,并可以将 WebRowSet 写到 XML 文件中,也可以用符合规范的 XML 文件来填充 WebRowSet。 |
FilteredRowSet | 通过设置 Predicate(在 javax.sql.rowset包中),提供数据过滤的功能。可以根据不同的条件对 RowSet 中的数据进行筛选和过滤。 |
JoinRowSet | 提供类似 SQL JOIN 的功能,将不同的 RowSet 中的数据组合起来。目前在 Java 6 中只支持内联(Inner Join)。 |
JdbcRowSet | 对 ResultSet 的一个封装,使其能够作为 JavaBeans 被使用,是唯一一个保持数据库连接的 RowSet。 |
CachedRowSet | 最常用的一种 RowSet。其他三种 RowSet(WebRowSet,FilteredRowSet,JoinRowSet)都是直接或间接继承于它并进行了扩展。它提供了对数据库的离线操作,可以将数据读取到内存中进行增删改查,再同步到数据源。可串行化,可作为 JavaBeans 在网络间传输。支持事件监听,分页等特性。 |
WebRowSet | 继承自 CachedRowSet,并可以将 WebRowSet 写到 XML 文件中,也可以用符合规范的 XML 文件来填充 WebRowSet。 |
FilteredRowSet | 通过设置 Predicate(在 javax.sql.rowset包中),提供数据过滤的功能。可以根据不同的条件对 RowSet 中的数据进行筛选和过滤。 |
JoinRowSet | 提供类似 SQL JOIN 的功能,将不同的 RowSet 中的数据组合起来。目前在 Java 6 中只支持内联(Inner Join)。 |
JdbcRowSet | 对 ResultSet 的一个封装,使其能够作为 JavaBeans 被使用,是唯一一个保持数据库连接的 RowSet。 |
CachedRowSet | 最常用的一种 RowSet。其他三种 RowSet(WebRowSet,FilteredRowSet,JoinRowSet)都是直接或间接继承于它并进行了扩展。它提供了对数据库的离线操作,可以将数据读取到内存中进行增删改查,再同步到数据源。可串行化,可作为 JavaBeans 在网络间传输。支持事件监听,分页等特性。 |
WebRowSet | 继承自 CachedRowSet,并可以将 WebRowSet 写到 XML 文件中,也可以用符合规范的 XML 文件来填充 WebRowSet。 |
FilteredRowSet | 通过设置 Predicate(在 javax.sql.rowset包中),提供数据过滤的功能。可以根据不同的条件对 RowSet 中的数据进行筛选和过滤。 |
JoinRowSet | 提供类似 SQL JOIN 的功能,将不同的 RowSet 中的数据组合起来。目前在 Java 6 中只支持内联(Inner Join)。 |
JdbcRowSet | 对 ResultSet 的一个封装,使其能够作为 JavaBeans 被使用,是唯一一个保持数据库连接的 RowSet。 |
相关文章推荐
- 使用回调函数来实现jdbc操作数据库数据
- 使用python读取mysql数据库并进行数据的操作
- 使用JDBC连接MySQL数据库--典型案例分析(一)---员工数据读取与操作
- sparkSQL里 sql语句,dataframe,Thrift Server JDBC都可以实现对数据的查询,过滤等操作, 哪这3种情况分别是什么情况下使用
- [Sqlite]-->Java使用jdbc连接Sqlite数据库进行各种数据操作的详细过程
- 封装android 通讯使用二进制进行数据交换 2个必要的读取,写入操作
- php使用PDO事务配合表格读取大量数据插入操作实现方法
- JAVA操作XML一(读取):使用DOM读取XML数据的两种具体实现
- Java使用jdbc连接Sqlite数据库,进行各种数据操作
- ArrayList 与HashSet的比较,及应用反射读取properties配置文件中的数据进行实例化再调用,以及类加载器的使用;还有HashCode的分析,及导致内存泄露,内存溢出的原因之一
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
- JDBC实现数据库的几种基本操作(查询,分页查询,根据关键字进行查询以及插入数据)
- jdbc使用 Statement 接口实现添加数据操作小例子
- 使用安卓手机的NFC功能进行数据读取操作
- 67.文件映射为内存进行操作与多线程 以及 文件映射到内存根据索引进行内存来实现读取多线程操作
- Java - 使用JDBC操作数据库时,如何提升读取数据的性能?如何提升更新数据的性能?
- 9-18 ASP第二讲实现数据的真实操作,从txt文件中读取进行校对,判断登陆是否成功
- java 读取文件——按照行取出(使用BufferedReader和一次将数据保存到内存两种实现方式)
- Scott Mitchell 的ASP.NET 2.0数据操作教程之十:使用 GridView 和DetailView实现的主/从报
- java中使用JXL对Excel文件进行数据的写入、导出操作