web中分页查询
来源:互联网 发布:软件之间的接口 编辑:程序博客网 时间:2024/05/16 14:50
页面效果图:
分页查询的思想原理:
- 分页显示时,需要知道的数据有:当前页码,每页的数据条数,整个数据集合的数据的总条数,开始行号,结束行号,可根据前两个数据计算出后边的数据
- 查新条件(QueryCondition)和页面信息(Page)分别封装对象,用于动态条件查询和页面信息的展示
sql语句代码:
<!-- 分页查询的结果集 --> <select id="selectItemByCondition" parameterType="com.wyj.ecps.model.QueryCondition" resultMap="BaseResultMap"> select * from (select rownum rw ,a.* from ( select * from eb_item t <where> <if test="brandId != null"> t.brand_id = #{brandId} </if> <if test="auditStatus != null"> and t.audit_status = #{auditStatus} </if> <if test="showStatus != null"> and t.show_status = #{showStatus} </if> <if test="itemName != null"> and t.item_name like '%${itemName}%' </if> </where> order by t.item_id desc ) a <!-- 把'<'转义 --> <![CDATA[ where rownum < #{endNum}) b where b.rw > #{startNum} ]]> </select> <!-- 查询当前条件下的记录数 --> <select id="selectItemByConditionCount" parameterType="com.wyj.ecps.model.QueryCondition" resultType="int"> select count(item_id) from eb_item t <where> <if test="brandId != null"> t.brand_id = #{brandId} </if> <if test="auditStatus != null"> and t.audit_status = #{auditStatus} </if> <if test="showStatus != null"> and t.show_status = #{showStatus} </if> <if test="itemName != null"> and t.item_name like '%${itemName}%' </if> </where> </select>
查询条件的封装对象代码:
public class QueryCondition { private Integer auditStatus; private Integer showStatus; private Long brandId; private String itemName; //开始的行号 private Integer startNum; //结束的行号 private Integer endNum; //当前页码 private Integer pageNo; public Integer getPageNo() { return pageNo; } public void setPageNo(Integer pageNo) { this.pageNo = pageNo; } public Integer getAuditStatus() { return auditStatus; } public void setAuditStatus(Integer auditStatus) { this.auditStatus = auditStatus; } public Integer getShowStatus() { return showStatus; } public void setShowStatus(Integer showStatus) { this.showStatus = showStatus; } public Long getBrandId() { return brandId; } public void setBrandId(Long brandId) { this.brandId = brandId; } public String getItemName() { return itemName; } public void setItemName(String itemName) { this.itemName = itemName; } public Integer getStartNum() { return startNum; } public void setStartNum(Integer startNum) { this.startNum = startNum; } public Integer getEndNum() { return endNum; } public void setEndNum(Integer endNum) { this.endNum = endNum; }}
页面信息的代码:
public class Page { //当前页码(已知) private int pageNo = 1; //每页记录数(已知) private int pageSize = 5; //指定查询条件下的记录数(已知) private int totalCount = 0; //指定查询下的总页数(未知) private int totalPage = 1; //开始行号(未知) private int startNum = 0; //结束行号(未知) private int endNum = 0; private List<?> list;//这里的 List中 不给出具体的类型,以可以存放多种类型的对象 public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount = totalCount; } /** * totalCount pageSize totalPage * 0 5 1 * 95 5 10 * 100 5 10 * * @return */ //总页数 public int getTotalPage() { totalPage = totalCount/pageSize; //考虑页面数据条数小于每页显示的条数,和查询总数据条数不能够整除每页显示条数时 if(totalPage==0 || totalCount%pageSize!=0){ totalPage++; } return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getStartNum() { return (pageNo - 1)*pageSize; } public void setStartNum(int startNum) { this.startNum = startNum; } public int getEndNum() { return pageNo*pageSize +1; } public void setEndNum(int endNum) { this.endNum = endNum; } public List<?> getList() { return list; } public void setList(List<?> list) { this.list = list; }}
业务层代码:
public Page selectItemByCondition(QueryCondition qc) { // 查询当前条件下的总记录数 Integer totalCount = itemDao.selectItemByConditionCount(qc); // 创建分页的page对象 把已知的条件设置一下 Page page = new Page(); // 设置当前页码 page.setPageNo(qc.getPageNo());// 页码数传递来的 // 设置总记录数 page.setTotalCount(totalCount); // 获得开始行号和结束行号 Integer startNum = page.getStartNum(); Integer endNum = page.getEndNum(); qc.setStartNum(startNum); qc.setEndNum(endNum); // 查询到的结果集 List<EbItem> itemLIst = itemDao.selectItemByCondition(qc); page.setList(itemLIst); return page; }
阅读全文
0 0
- web中分页查询
- web 动态分页查询
- Java web 分页查询
- Web查询分页功能实现
- java web分页查询初试
- java web分页查询初试
- java web 分页查询、显示
- web开发中的分页查询
- Java分页查询中分页的分页
- Oracle中分页查询
- java web中使用过滤器实现数据查询的分页显示
- Informix 中分页查询语句
- jsp中实现分页查询
- Oracle中分页查询介绍
- mysql 中LIMIT 分页查询
- java中分页查询操作
- Oracle中分页查询语句
- Java web访问MySql数据库分页查询
- 适配器 多条目加载
- 解决qt中ui界面中有对象名,cpp文件中还是显示没有成员的方法
- MongoDB概念
- Singleton Pattern 和 Factory Pattern 的学习
- 知识学习——jQuery效果
- web中分页查询
- 处理 mvn -v 报Exception in thread "main" java.lang.UnsupportedClassVersionError错的问题
- vscode踩坑记
- ZK2
- kuangbin专题五 并查集 POJ1733 Parity game
- 黑龙江省对地观测与导航工程技术研究中心正式通过科技厅备案
- Java-集合 list对象进行指定位置插入、删除、迭代、遍历输出(具体习题讲解)
- RecyclerView的使用
- Doing Homework (状态dp)