分页SQL
从数据库表中的第M条数据开始取N条记录
五个变量
1.数据总数
查数据select count(*)
2.页面大小(每页显示的数据条数) 30
用户自定页
3.总页数
程序自动计算
总页数=(数据条数%页面大小 == 0) ? (数据条数/页面大小):(数据条数/页面大小+1)
4.当前页(页码)
用户自定页
5.当前页的对象集合(实体类集合):每页所显示的所有数据(10个人的信息)
查数据库,分页sql
List<Student>
查询总数
DBUtil、DAO
分页SQL
将sql查询结果取出来分装到一个对象中
SQL Server
从数据库表中的第M条记录开始取N条记录,利用Top关键字(如果Select语句中既有top,又有orderby,则是从排序好的结果集中选择):
SELECT *
FROM ( SELECT Top N *
FROM (SELECT Top (M + N - 1) * FROM 表名称 Order by 主键 desc) t1 ) t2
Order by 主键 asc;
例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
SELECT *
FROM (SELECT TOP 20 *
FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2
Order by sys_id asc;
Oracle
从数据库表中第M条记录开始检索N条记录
select * form
(select ROWNUM rownum_,t1.* form
(select * form table order by table.id desc ) row_ where rownum <= ?)
where rownum_ > ?;
例如从表employees(主键为employee_id)中从11条记录开始检索20条记录:
select * form
(select rownum r_,row_.* form
(select * form employees order by employees_id desc ) row_ where rownum <= 20)
where rownum_ > 11;
MySQL
Mysql数据库最简单,是利用mySQL的LIMIT函数,LIMIT[offset,] rows从数据库表中M条记录开始检索N条记录的语句为:
SELECT [列名列表] FROM 表名称 LIMIT M,N
例如从表Sys_option(主键为sys_id)中从10条记录开始检索20条记录,语句如下:
select * from sys_option limit 10,20
实现sevice层servlet层
参数由显示层传进来