易截截图软件、单文件、免安装、纯绿色、仅160KB

Java 6 RowSet 使用完全剖析(2)

Java 6 RowSet 使用完全剖析(2)
关键字: rowset
分页
由于 CachedRowSet 是将数据临时存储在内存中,因此对于许多 SQL 查询,会返回大量的数据。如果将整个结果集全部存储在内存中会占用大量的内存,有时甚至是不可行的。对此 CachedRowSet 提供了分批从 ResultSet 中获取数据的方式,这就是分页。应用程序可以简单的通过 setPageSize 设置一页中数据的最大行数。也就是说,如果页大小设置为 5,一次只会从数据源获取 5 条数据。下面的代码示范了如何进行简单分页操作。(分页部分代码默认 ORDERS 表中有 10 条数据)
清单 11. 分页代码一
Java代码
ResultSet rs = stmt.executeQuery(DBCreator.SQL_SELECT_ORDERS);    
  
CachedRowSet cachedRS = new CachedRowSetImpl(); // 设置页大小    
  
cachedRS.setPageSize(4);    
  
cachedRS.populate(rs, 1);    
  
while (cachedRS.nextPage()) { printRowSet(cachedRS); }    
  
while (cachedRS.previousPage()) { printRowSet(cachedRS); }    
ResultSet rs = stmt.executeQuery(DBCreator.SQL_SELECT_ORDERS);
CachedRowSet cachedRS = new CachedRowSetImpl(); // 设置页大小
cachedRS.setPageSize(4);
cachedRS.populate(rs, 1);
while (cachedRS.nextPage()) { printRowSet(cachedRS); }
while (cachedRS.previousPage()) { printRowSet(cachedRS); }
可以看到只需要在 populate 之前使用 setPageSize 设置页的大小,就可以轻松实现分页了。每次调用 nextPage 或 previousPage 进行翻页后,行游标都会被自动移动到当前页第一行的前面,并且只能在当前页内移动。这样我们对每一页都可以像新的数据集一样进行遍历,非常方便。这里需要注意的是:
用来填充 CachedRowSet 的 ResultSet 必须是可滚动的(Scrollable)。
populate 必须使用有两个参数的版本,否则无法进行分页。读者可以将 cachedRS.populate(rs, 1); 换成 cachedRS.populate(rs); 看看会有怎样的情况发生。
ResultSet rs 必须在遍历完毕后才能关闭,否则翻页遍历时会抛 SQLException。
我们注意到在使用分页遍历数据集时,nextPage


相关文档:

Java zip 解压缩API

参数说明
fileName: 表示想解压的文件名   如:c:\\aaa\a.zip
unZipDir:  表示想解压到的路径   如:c:\\ccc
public static void unZip1(String fileName, String unZipDir) {
        try {
            Fil ......

一个Java程序员应该掌握的10项技能

一个Java程序员应该掌握的10项技能
1、语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正。
2、命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:appletviewer、 HtmlConverter、jar、 java、javac、javadoc、javap、javaw、nati ......

java中hashcode()和equals()的详解(转)

原贴地址http://www.javaeye.com/topic/257191
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong
2008.10.23晚21.36)。
1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。
equals()方法在object类中定义如下:
  public boolean equals( ......

欢迎Java编程爱好者交流

     大家好!
     我是一个编程爱好者。
     经过专业课的学习,有一定的编程基础,对C/C++、ASP.ENT以及数据库比较熟悉。
     现在,我在一个Java培训班学习。
     空闲之余,在这里找到了一个交流的平台, ......

Java EE 6 Platform草案包含了Web Profile


Java EE 6 Platform草案包含了Web Profile
来源:http://www.infoq.com/cn/news/2009/02/java-ee6-draft
作者 Dionysios G. Synodinos 译者 宋玮 发布于 2009年2月3日 下午10时55分
社区 Java 主题 Enterprise Application Blocks 标签 Java EE
Java EE 6 Platform规范 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号