select top "+pageNum*pb.getRowsPerPage()+"* frompageNum:当前是第几页,pb.getRowsPerPage(),每页显示的条数 pb就是PaginationBean对象public class PaginationBean{ private int curPage=1; private int maxPage; private int maxRowCount; private int rowsPerPage=10; public java.util.Vector data; public void setMaxPage(int maxPage){ this.maxPage=maxPage; } public void setcurPage(int curPage){ this.curPage=curPage; } public void setMaxRowCount(int maxRowCount){ this.maxRowCount=maxRowCount; } public void setRowsPerPage(int rowsPerPage){ this.rowsPerPage=rowsPerPage; } public int getMaxPage(){ return this.maxPage; } public int getCurPage() { return this.curPage; } public int getMaxRowCount(){ return this.maxRowCount; } public int getRowsPerPage(){ return this.rowsPerPage; } }
google 搜索分页 一大把 给你推荐个链接,我一般用这个做分页(和数据库没关系); http://blog.csdn.net/Jerry_BJ/archive/2010/06/02/5642447.aspx
select * from ( select row_number() over ( order by tempColumn) tempRowNumber,* from ( select top 2359296 tempColumn= 0,* from table order by id) t ) tt where tempRowNumber> 2359286 sql2005的分页 ,速度 提高快的LZ参考下。
SQL 是 top oracle 是 rownum mySQL不知道
select top 10 from tt where id not in (select top start id from tt )
我想知道 你是用的什么数据库 因为sqlserver mysql oracle分页都是不同的
mySql 使用 limit(?,?)前一个问号是从第几个开始取,后一个是具体取几个
MySQL Oracle MSSQL 分页都不一样, 不过Google一下很多答案反正我用Hibernate。。
sqlServer: select top(10) * from 表名 where id not in (select top((页-1)*10) id from 表名mysql: select * from 表名 limit (页-1)*10,10
select * from (select t1.*,rownum rn from (select * from emp) t1 where rownum<=10) where rn>=1;
效率最高的查法declare @PageNo int --当前页,@PageSize int --每页显示条数 set @PageNo =2 set @PageSize =10 if @PageNo = 1 begin select top(@PageSize) * from talbe end else begin select top(@PageSize) *from talbe where table.id> (select max(id) from (select top ((@PageNo-1) * @PageSize) * from table order by table) T ) order by id
这里以自动增长的id字段为主键。 查询10到20条记录: sql server: select top 10 * from user where id in (select top 20 id from user order by id) order by id descmysql:select * from user order by id limit 10,21 (21是不包含本身的)oracle:select * from (select rownum num,* from user where num<=20) where num>10
private int curPage=1;
private int maxPage;
private int maxRowCount;
private int rowsPerPage=10;
public java.util.Vector data;
public void setMaxPage(int maxPage){
this.maxPage=maxPage;
}
public void setcurPage(int curPage){
this.curPage=curPage;
}
public void setMaxRowCount(int maxRowCount){
this.maxRowCount=maxRowCount;
}
public void setRowsPerPage(int rowsPerPage){
this.rowsPerPage=rowsPerPage;
}
public int getMaxPage(){
return this.maxPage;
}
public int getCurPage() {
return this.curPage;
}
public int getMaxRowCount(){
return this.maxRowCount;
}
public int getRowsPerPage(){
return this.rowsPerPage;
}
}
给你推荐个链接,我一般用这个做分页(和数据库没关系);
http://blog.csdn.net/Jerry_BJ/archive/2010/06/02/5642447.aspx
select * from ( select row_number() over ( order by tempColumn) tempRowNumber,* from ( select top 2359296 tempColumn= 0,* from table order by id) t ) tt where tempRowNumber> 2359286
sql2005的分页 ,速度 提高快的LZ参考下。
oracle 是 rownum
mySQL不知道
不过Google一下很多答案反正我用Hibernate。。
select top(10) * from 表名 where id not in (select top((页-1)*10) id from 表名mysql:
select * from 表名 limit (页-1)*10,10
(select t1.*,rownum rn from (select * from emp) t1 where rownum<=10)
where rn>=1;
set @PageNo =2 set @PageSize =10
if @PageNo = 1
begin
select top(@PageSize) * from talbe
end
else begin
select top(@PageSize) *from talbe where table.id>
(select max(id) from
(select top ((@PageNo-1) * @PageSize) * from table order by table) T ) order by id
查询10到20条记录:
sql server:
select top 10 * from user where id in (select top 20 id from user order by id) order by id descmysql:select * from user order by id limit 10,21 (21是不包含本身的)oracle:select * from (select rownum num,* from user where num<=20) where num>10