Java实现分页查询
来源:互联网 发布:王者荣耀网络检测出错 编辑:程序博客网 时间:2024/05/20 08:25
MySQL分页语句:LIMIT M,N
M:开始记录的索引。从0开始的
N:每次查询多少条。
每次查10条:
查第一页的:SELECT * FROM table LIMIT 0,10;
查第二页的:SELECT * FROM table LIMIT 10,10;
为了在页面更好的展示,并且为了减少内存的占用率,不是一次性将数据从数据库中查出来,而是分批次去查。一般如下图显示:
分页类Page.java:
package com.cmcc.imark.util;import java.util.List;public class Page {//DAO可以查出来private List records;//存放分页记录//界面可以传过来private int currentPageNum;//当前页码//DAO可以查出来private int totalRecords;//总记录条数private int pageSize = 5;//每页显示的条数//算出来:根据总记录条数来算private int totalPage;//总页数//算出来:根据当前页码来算private int startIndex;//每页开始的记录的索引//记录显示的页码private int startPage;private int endPage;//用户查询分页数据的请求的URLprivate String url;public Page(int currentPageNum,int totalRecords){this.currentPageNum = currentPageNum;this.totalRecords = totalRecords;//计算总页数totalPage = totalRecords%pageSize==0?totalRecords/pageSize:(totalRecords/pageSize+1);//计算开始记录的索引startIndex = (currentPageNum-1)*pageSize;//计算开始和结束页码if(totalPage<=9){//不足9页startPage = 1;endPage = totalPage;}else{startPage = currentPageNum-4;endPage = currentPageNum+4;if(startPage<1){startPage = 1;endPage = startPage+8;}if(endPage>totalPage){endPage = totalPage;startPage = endPage-8;}}}}DAO:
public int getTotalRecord(String table) {//一般的话,不带参数String sql = "select count(*) as count from "+table;Map<String, Object> map = findFirst(sql);Object count = null;for(String key:map.keySet()){count = map.get(key);}return Integer.parseInt(count.toString());}public List<User> findPageRecords(Class className,String sql,int startIndex, int pageSize) {//一般的话,就只有startIndex及pageSize两个参数return find(className, sql,startIndex,pageSize);}service层代码:
public Page findPageReocords(Class className,String sql,String num,String table) {int pageNum = 1;//默认的页码if(num!=null&&!num.trim().equals("")){pageNum = Integer.parseInt(num);}int totalRecords = pageDao.getTotalRecord(table);Page page = new Page(pageNum, totalRecords);//查询分页记录List records = pageDao.findPageRecords(className,sql,page.getStartIndex(), page.getPageSize());page.setRecords(records);return page;}
public Page findAll(String num) {//这是实际的业务层继承了分页的service类String sql = "select id,prizeName from prize limit ?,?";return findPageReocords(Prize.class,sql,num, "prize");}控制层:
@RequestMapping("/prizeListUi")public String prizeListUi(Model model,String num){System.out.println("prizeListUi");Page page = this.prizeService.findAll(num);page.setUrl("/prizeController/prizeListUi?");model.addAttribute("page",page);return "/back/prize/prizeList";}前端页面的话,直接可以使用jstl取出page中的属性即可。
0 0
- Java实现分页查询
- java+jsp实现分页查询
- java简单实现分页查询
- Java实现MySQL分页查询
- JAVA学习之 实现分页查询
- java分页查询接口的实现
- java中如何实现模糊分页查询
- 关于Java实现分页查询的方式
- 详述 DB2 分页查询及 Java 实现
- Java实现简单分页查询显示
- java--分页查询接口设计及分页器的实现
- Hibernate 实现分页查询
- Ajax实现分页查询
- Hibernate实现分页查询
- Ajax实现分页查询
- Hibernate 实现分页查询
- Ajax实现分页查询
- Hibernate 实现分页查询
- 注意数字一定要注意有没有正负号符号,大小,小数点
- 关于36kr和发烧友39度的思考
- 计算机网络笔记
- iOS开发之UITableView全面解析
- 关于Python中以字母r/R,或字母u/U 开头的字符串
- Java实现分页查询
- 让Ubuntu 14.04“保存”屏幕亮度值
- nyoj364田忌赛马
- 【cocos2dx 3.2】一个都不能死2 人物层
- lcd驱动程序
- VC提权代码
- android TP实现距离感应
- 怎么使用jquery来突出加亮鼠标所停留在的表格行记录?
- 制度的重要性