JDBC使用游标实现分页查询的方法
本文实例讲述了JDBC使用游标实现分页查询的方法。分享给大家供大家参考,具体如下:
/** *一次只从数据库中查询最大maxCount条记录 *@paramsql传入的sql语句 *@paramstartNo从哪一条记录开始 *@parammaxCount总共取多少条记录 */ publicvoidgetData(Stringsql,intstartNo,intmaxCount){ Connectionconn=ConnectionUtil.getConnection(); try{ //conn.prepareStatement(sql,游标类型,能否更新记录); //游标类型: //ResultSet.TYPE_FORWORD_ONLY:只进游标 //ResultSet.TYPE_SCROLL_INSENSITIVE:可滚动。但是不受其他用户对数据库更改的影响。 //ResultSet.TYPE_SCROLL_SENSITIVE:可滚动。当其他用户更改数据库时这个记录也会改变。 //能否更新记录: //ResultSet.CONCUR_READ_ONLY,只读 //ResultSet.CONCUR_UPDATABLE,可更新 PreparedStatementpstat=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //最大查询到第几条记录 pstat.setMaxRows(startNo+maxCount-1); ResultSetrs=pstat.executeQuery(); //将游标移动到第一条记录 rs.first(); //游标移动到要输出的第一条记录 rs.relative(startNo-2); while(rs.next()) System.out.println(rs.getInt(1)); }catch(SQLExceptione){ e.printStackTrace(); } } /** *从数据库中查询所有记录,然后通过游标来获取所需maxCount条记录 *@paramsql传入的sql语句 *@paramstartNo从哪一条记录开始 *@parammaxCount总共取多少条记录 */ publicvoidgetDataFromAll(Stringsql,intstartNo,intmaxCount){ Connectionconn=ConnectionUtil.getConnection(); try{ PreparedStatementpstat=conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSetrs=pstat.executeQuery(); rs.first(); rs.relative(startNo-1); inti=startNo-1; while(i<startNo+maxCount-1&&!rs.isAfterLast()){ System.out.println(rs.getInt(1)); i++; rs.next(); } }catch(SQLExceptione){ e.printStackTrace(); } }
更多关于java相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java文件与目录操作技巧汇总》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。