`

可滚动结果集与分页技术

SQL 
阅读更多

可滚动的结果集

       Statement st =

       connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,      ResultSet.CONCUR_UPDATABLE);

       ResultSet rs = st.executeQuery(sql);

       rs.beforeFirst();//定位到第一行的前面

rs.afterLast();//定位到最后一行的下一行去,若想读数据则向前移

rs.first();//定位到第一行

rs.isFirst();//判断是不是第一行

rs.last();//定位到最后一行

rs.isLast();//判断是不是最后一行

       rs.absolute(9);//定位到那一行

rs.moveToInsertRow();

      

public class ScrollTest {

    public static void main(String[] args) throws SQLException {

       scroll();

    }

    static void scroll() throws SQLException {

       Connection conn = null;

       Statement st = null;

       ResultSet rs = null;

       try {

           // 2.建立连接

           conn = JdbcUtils.getConnection();

           st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

                  ResultSet.CONCUR_READ_ONLY);

           rs = st

                  .executeQuery("select id, name, money, birthday  from user where id<10");

           while (rs.next()) {

              System.out.println(rs.getObject("id") + "\t"

                     + rs.getObject("name") + "\t"

                     + rs.getObject("birthday") + "\t"

                     + rs.getObject("money"));

           }

 

           System.out.println("------------");

           rs.absolute(5);//定位到第5行去

           if (rs.previous()){//定位到前一行去

            System.out.println(rs.getObject("id") + "\t"

            + rs.getObject("name") + "\t"

            + rs.getObject("birthday") + "\t"

            + rs.getObject("money"));

           }

       } finally {

           JdbcUtils.free(rs, st, conn);

       }

    }

    //用可流动的结果集进行分页

    static void scroll2() throws SQLException {

       Connection conn = null;

       Statement st = null;

       ResultSet rs = null;

       try {

           // 2.建立连接

           conn = JdbcUtils.getConnection();

           st = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

                  ResultSet.CONCUR_READ_ONLY);

           rs = st

                  .executeQuery("select id, name, money, birthday  from user");

           while (rs.next()) {

              System.out.println(rs.getObject("id") + "\t"

                     + rs.getObject("name") + "\t"

                     + rs.getObject("birthday") + "\t"

                      + rs.getObject("money"));

           }

 

           System.out.println("------------");

           rs.absolute(150);//定位到150

           int i = 0;

           while (rs.next() && i < 10) {   //向下读取10条记录

              i++;

              System.out.println(rs.getObject("id") + "\t"

                     + rs.getObject("name") + "\t"

                     + rs.getObject("birthday") + "\t"

                     + rs.getObject("money"));

           }

       } finally {

           JdbcUtils.free(rs, st, conn);

       }

    }

    //说明,这种分页效率很低,它是由先读到内存当中去,然后再选择哪些列.这种方法就为了那些不支技分页的数据库使用的.

}

 

分享到:
评论

相关推荐

    Java_JDBC由浅入深

    13.1 可滚动结果集 70 13.2 分页技术 72 13.3 可更新结果集 73 第十四节 编写一个简单的数据库连接池 74 14.1 为什么要使用数据库连接池 74 14.2 数据库连接池雏形 74 14.2 数据库连接池优化 77 14.2.1 对线程池加锁...

    JDBC 3.0数据库开发与设计

    3.6.4 可滚动结果集 3.6.5 可更新结果集 3.7 SQL和Java数据类型转换 3.8 本章小结 第4章 JDBC 3.0 API数据库开发高级操作 4.1 预编译语句 4.1.1 PreparedStatement对象的创建 4.1.2 传递IN参数 4.1.3 传递...

    安卓源码包android web应用OCR图像识别listview相关EditText输入框Launcher 桌面45个合集

    [四次元]最全的OCR图像识别技术源码内有说明.zip [四次元]横向ListView的完整实现(包含基于横向listview做的一个小相册demo).rar [四次元]横竖都能滑动的 listview 嵌套在一起的.zip [四次元]自定义单选、多选对话框...

    True DBGrid for .NET-基于.NET的企业版网格控件

    因为它包含了您所依赖的特性:复合显示模式,具有独立或同步滚动的水平和垂直拆分,完全可定制网格界面(字体,颜色,图片和格式),增强键盘导航,健壮的打印选项以及其它更多特性! [特 性] ComponentOne True ...

    PHP程序开发范例宝典III

    6.12 分页技术 270 实例175 查询结果的分页显示 271 实例176 单击页码跳转到指定页 272 实例177 输入页码跳转到指定页 275 实例178 超长文本的分页显示 276 实例179 查询结果的分栏显示 278 实例180 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     17.1.11 可滚动的结果集  17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  ...

    dreamweaver网站PHP开发MXP插件

    搜索结果分页插件.mxp 随浏览器窗口变化背景图案插件.mxp 套常规通用的表单插件.mxp 条件式显示区域插件.mxp 同时删除多项记录.mxp 统计在线人数(UD)修正版.mxp 图片载入状态插件.mxp 图形计数器.mxp 文档元素树型...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    数据库开发基础、Microsoft SQLServer基础、SQL语言基础、索引、事务、SQL语言高级技术(空值处理、聚合与分组、数据分页、Union、日期函数、类型转换函数、流控函数、表连接、子查询、存储过程、触发器)、数据库...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     17.1.11 可滚动的结果集  17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     17.1.11 可滚动的结果集  17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     17.1.11 可滚动的结果集  17.1.12 在HQL查询语句中绑定参数  17.1.13 设置查询附属事项  17.1.14 在映射文件中定义命名查询语句  17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件  17.2.1 比较运算  ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例231 文本文件的分页读取 298 4.4 文件操作 300 实例232 文件操作汇总 300 实例233 目录、文件定位器 302 实例234 改头换面 303 实例235 文件属性分析 304 实例236 文件类型检测 306 实例237 判断文件的权限 308 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例231 文本文件的分页读取 298 4.4 文件操作 300 实例232 文件操作汇总 300 实例233 目录、文件定位器 302 实例234 改头换面 303 实例235 文件属性分析 304 实例236 文件类型检测 306 实例237 判断文件的权限 308 ...

    asp.net知识库

    ASP.NET中大结果集的分页[翻译] .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库 SQL Server数据库安全规划全攻略 .net通用数据库访问组件SQL ...

    JavaScript网页特效范例宝典源码

    实例037 框架集的嵌套 56 实例038 在网页中应用浮动框架 58 实例039 创建空白框架 60 实例040 居中显示框架页 62 1.7 无边框窗口 63 实例041 全屏显示无边框有滚动条的窗口 63 实例042 应用CSS+DIV实现指定尺寸...

Global site tag (gtag.js) - Google Analytics