- mysql分页
- 需用到的参数:
- pageSize 每页显示多少条数据
- pageNumber 页数 从客户端传来
- totalRecouds 表中的总记录数 select count (*) from 表名
- totalPages 总页数
- totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1
- pages 起始位置
- pages= pageSize*(pageNumber-1)
- SQL语句:
- select * from 表名 limit pages, pageSize;
- mysql 分页依赖于关键字 limit 它需两个参数:起始位置和pageSize
- 起始位置=页大小*(页数-1)
- 起始位置=pageSize*(pageNumber -1)
- 一:分页需求:
客户端通过传递start(页码),limit(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下:
比如:
查询第1条到第10条的数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;
查询第10条到第20条的数据的sql是:select * from table limit 10,20; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;
查询第20条到第30条的数据的sql是:select * from table limit 20,30; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;
二:通过上面的分析,可以得出符合我们自己需求的分页sql格式是:select * from table limit (start-1)*limit,limit; 其中start是页码,limit是每页显示的条数。
-
- oracle分页
- pageSize 每页显示多少条数据
- pageNumber 页数 从客户端传来
- totalRecouds 表中的总记录数 select count (*) from 表名
- totalPages 总页数
- totalPages=totalRecouds%pageSize==0?totalRecouds/pageSize:totalRecouds/pageSize+1
- startPage 起始位置
- startPage= pageSize*(pageNumber-1)+1
- endPage=startPage+pageSize
- SQL语句
- select a.* from
- (
- select rownum num ,t.* from 表名 t where 某列=某值 order by id asc
- )a
- where a.num>=startPage and a.num<endPage
-
select t2.* from (select t1.*,rownum rn from (select employee_id,emp_name,email,phone_number,hire_date,j.job_title,salary,d.department_name from employeess eleft join jobss j on e.job_id=j.job_idleft join departmentss d on e.department_id=d.department_id) t1 where rownum <= #{up}) t2 where rn > #{down}
-
Mapper:List<Employees> findByPageNo(@Param("up") int up, @Param("down") int down);
- Dao:
public List<Employees> findByPageNo(int pageNo, int pageNum) { int up=pageNo*pageNum; int down=(pageNo-1)*pageNum; return employeeMapper.findByPageNo(up,down);}
- Service:
public List<Employees> findByPageNo(int pageNo, int pageNum) { return employeeDao.findByPageNo(pageNo,pageNum);}
- Controller
@RequestMapping("employeelist.do")public String list(int pageNo, Model model) { //每页数量 int pageNum = 3; //总数量 int count = employeeService.findMaxSize(); //总页数 int pageMax = count % pageNum == 0 ? count / pageNum : count / pageNum + 1; System.out.println("list---------"); //页数判断 if (pageNo < 1) { pageNo = 1; } if (pageNo > pageMax) { pageNo = pageMax; } List<Employees> all = employeeService.findByPageNo(pageNo, pageNum); //将结果返回给页面显示 model.addAttribute("employeelist", all); model.addAttribute("pageNo", pageNo); model.addAttribute("pageMax", pageMax); return "employeelist";}
-
原文地址:https://www.cnblogs.com/arvins/p/8474564.html
时间: 2024-11-13 15:04:24