您的位置:首页 > 其它

JDBC利用游标分页查询

2015-12-18 11:53 411 查看
 public void getData(String sql,int startNo,int maxCount){


  Connection conn = 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,可更新


   PreparedStatement pstat = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);


   //最大查询到第几条记录


   pstat.setMaxRows(startNo+maxCount-1);


   ResultSet rs = pstat.executeQuery();


   //将游标移动到第一条记录


   rs.first();


//   游标移动到要输出的第一条记录


   rs.relative(startNo-2);


   while(rs.next())


    System.out.println(rs.getInt(1));


  } catch (SQLException e) {


   e.printStackTrace();


  }


 }


 


 




 public void getDataFromAll(String sql,int startNo,int maxCount){


  Connection conn = ConnectionUtil.getConnection();


  try {


   PreparedStatement pstat = conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);


   ResultSet rs = pstat.executeQuery();


   rs.first();


   rs.relative(startNo-1);


   int i = startNo-1;


   while(i < startNo + maxCount-1 && !rs.isAfterLast()){


    System.out.println(rs.getInt(1));


    i++;


    rs.next();


   }


  } catch (SQLException e) {


   e.printStackTrace();


  }


 } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: