`
jzhua2008
  • 浏览: 1286 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

分页方式的两种方式

SQL 
阅读更多
目前主要的分页方式主要分为两种方式:
1:逻辑分页
使用Java的ResultSet结果集来滚动数据实现数据分页。
具体步骤:
1)根据条件SQL查询数据库
2)得到ResultSet结果集,由于ResultSet带有游标,因此可以使用其的next()方法指向下一条记录
3)利用next()来实现分页所需的结果集

2:物理分页

逻辑分页第一种方式:
主要的实现方法体:
Public List pageList(int currentPage, int showRows)
{
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
ArrayList alist = new ArrayList();
Try
{
Con = this.getConnection();
Ps = con.prepareStatement(SQL);
Rs = ps.excuteQuery();
Int skipBegin = (currentPage - 1)*showRows;
Int skipEnd = currentPage*showRows;
Int currentNum = 0;
While(rs.next())
{
If(currentNum >= skipBegin && currentNum < skipEnd)
{
Alist.add(保存结果);
If(currentNum == skipend - 1)
{
Break;
}
currentNum++;
}
}
Return alist;
}
}

逻辑分页第二种方式:使用absolute()方法,实现第二中方式。但是这里又一个问题是不是大多数的数据库都支持absolute()。
主要实现方法:
Public List pageList(int currentPage, int showRows)
{
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
ArrayList alist = new ArrayList();
Try
{
Con = this.getConnection();
Ps = con.prepareStatement(SQL);
Rs = ps.excuteQuery();
Int skipBegin = (currentPage - 1)*showRows;
Int skipEnd = currentPage*showRows;
// 使用absolute()进行定位
If (!rs.absolute(skipBegin) )
{
Return alist;
}
While(rs.next())
{
If(skipBegin < skipEnd)
{
Alist.add(保存结果);
If(skipBegin == skipend - 1)
{
Break;
}
skipBegin ++;
}
}
Return alist;
}
}

还没有写完!待续...
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics