Mybatis分页查询及底部页码实现
来源:互联网 发布:百分百qq采集分析软件 编辑:程序博客网 时间:2024/05/23 18:31
在做web开发中分页操作是少不了的,以下是mybatis+mysql的分页查询实现
第一步:写好分页操作的工具类
package com.ssm.util;import java.util.List;public class Page<T> { private int firstIndex; private int pageSize=5; private int pageCount=1; private int totalPageCount; private int totalDataCount; private List<T> list; public int getFirstIndex() { return (this.getPageCount()-1)*this.getPageSize(); } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageCount() { return pageCount; } public void setPageCount(int pageCount) { this.pageCount = pageCount; } public int getTotalPageCount() { return (this.getTotalDataCount()-1)/this.getPageSize()+1; } public int getTotalDataCount() { return totalDataCount; } public void setTotalDataCount(int totalDataCount) { this.totalDataCount = totalDataCount; } public List<T> getList() { return list; } public void setList(List<T> list) { this.list = list; } }
第二部:搭好mybatis框架做好实体映射 (略过)
第三部:分页操作
<select id="queryall" resultType="Component" resultMap="componentResultMap" parameterType="int"> <!-- mysql 的分页查询语句--> <!--firstIndex pageSize是Page类的属性 --> SELECT * FROM component LIMIT #{firstIndex},#{pageSize} </select> <select id="queryCount" resultType="int"> <!-- 查询总记录数--> select count(*) from component </select> <!--接着就是对应的接口--> public interface ComponentMapper { //方法名要与查询语句id一样 public List<Component> queryall(Page<Component> page); public int queryCount();}//对应service层的操作@Servicepublic class ComponentServiceImpl implements ComponentService{ @Autowired private ComponentMapper componentMapper;//注入 public Page<Component> getAllComponent(Page<Component> page) { List<Component> list = componentMapper.queryall(page); int queryCount = componentMapper.queryCount(); page.setTotalDataCount(queryCount); page.setList(list); return page; } //对应的Controller层操作 @Controller@RequestMapping("/componentType")public class ComponentcCntroller { @Autowired private ComponentService componentService;//注入service @RequestMapping("getAllComponent") public ModelAndView getAllComponent(Page<Component> page){ ModelAndView view=new ModelAndView(); page = componentService.getAllComponent(page); view.addObject("page",page); view.setViewName("componentList"); return view; }
第四部页面展示
<!-- 用c标签对page里的list进行迭代--> <c:forEach items="${page.list}" var="c" varStatus="index"> <tr> <td>${page.firstIndex+index.index+1}</td> <td>${c.componentName}</td> <td>${c.componentType.type_name}</td> <c:if test="${c.capacity eq ''}"> <td>---</td> </c:if> <c:if test="${c.capacity != '' }"> <td>${c.capacity}GB</td> </c:if> <td>${c.price}</td> <td><a href="${pageContext.request.contextPath}/toUpdate.action?componentId=${c.componentId}">修改</a> <a href="${pageContext.request.contextPath}/deleteComponent.action?componentId=${c.componentId}">删除</a></td> </tr> </c:forEach> <!-- 下面是对页码的处理--> <div align="center"> 第${page.pageCount}/${page.totalPageCount}页 <c:if test="${page.pageCount eq 1}"> 首页 上一页 </c:if> <c:if test="${page.pageCount > 1}"> <a href="${pageContext.request.contextPath}/componentType/getAllComponent?pageCount=1">首页</a> <a href="${pageContext.request.contextPath}/componentType/getAllComponent?pageCount=${page.pageCount-1}">上一页</a> </c:if> <c:if test="${page.totalPageCount<5}"> <c:forEach begin="1" end="${page.totalPageCount}" varStatus="index"> <a id="${index.index }" href="${pageContext.request.contextPath}/componentType/getAllComponent?pageCount=${index.index}"><font>${index.index}</font></a> </c:forEach> </c:if> <c:if test="${page.totalPageCount>5}"> <c:if test="${page.pageCount<=3}"> <c:forEach begin="1" end="5" varStatus="index"> <a id="${index.index }" href="${pageContext.request.contextPath}/componentType/getAllComponent?pageCount=${index.index}"><font>${index.index}</font></a> </c:forEach> </c:if> </c:if> <c:if test="${page.totalPageCount>5}"> <c:if test="${page.pageCount>=4&&page.pageCount<=page.totalPageCount-2}"> <c:forEach begin="${page.pageCount-2}" end="${page.pageCount+2}" varStatus="index"> <a id="${index.index }" href="${pageContext.request.contextPath}/componentType/getAllComponent?pageCount=${index.index}"><font>${index.index}</font></a> </c:forEach> </c:if> </c:if> <c:if test="${page.totalPageCount>5}"> <c:if test="${page.pageCount>(page.totalPageCount-2)}"> <c:forEach begin="${page.totalPageCount-4}" end="${page.totalPageCount}" varStatus="index"> <a id="${index.index }" href="${pageContext.request.contextPath}/componentType/getAllComponent?pageCount=${index.index}"><font>${index.index}</font></a> </c:forEach> </c:if> </c:if> <c:if test="${page.pageCount eq page.totalPageCount}"> 下一页 尾页 </c:if> <c:if test="${page.pageCount < page.totalPageCount}"> <a href="${pageContext.request.contextPath}/componentType/getAllComponent?pageCount=${page.pageCount+1}">下一页</a> <a href="${pageContext.request.contextPath}/componentType/getAllComponent?pageCount=${page.totalPageCount}">尾页</a> </c:if> </div>
<!-- 为了给当前显示的页码显示红色加上以下jQuery代码--> <style type="text/css"> .font{ color: red; } </style> <link rel="stylesheet" href="https://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script><script type="text/javascript"> $(function(){ var pageNo=${page.pageCount}; $("#"+pageNo).addClass("font"); });</script>
最后效果图
2 0
- Mybatis分页查询及底部页码实现
- 【Mybatis】分页查询(拦截器分页原理及实现)
- mybatis-config.xml配置文件及sql分页查询的实现
- jquery实现分页页码
- Mybatis实现真正分页查询
- Mybatis实现数据库分页查询
- Mybatis-实现ORACLE分页查询
- Mybatis最入门---分页查询(拦截器分页原理及实现)
- Mybatis最入门---分页查询(拦截器分页原理及实现)
- Mybatis最入门---分页查询(拦截器分页原理及实现)
- mybatis入门基础(十一)-----分页查询(拦截器分页原理及实现)
- Mybatis最入门---分页查询(拦截器分页原理及实现)
- GridView实现数字页码分页
- 实现分页和页码跳转
- Ajax实现页码式分页
- JSTL实现分页页码功能
- Mybatis通过拦截器实现分页查询
- Mybatis+Oracle实现按条件分页查询
- 数据库内外网交换怎么做的,如果交换给你做,你怎么做
- effect C++ 尽可能使用const
- java中的位运算
- React+webpack开发环境的搭建_0
- unity 如何去除打包好的应用程序边框
- Mybatis分页查询及底部页码实现
- C++模板:函数模板、类模板、模板与继承
- 对原始信源的格式、存储形式及表示形式的详解
- JAX-WS 报错 Unable to create JAXBContext
- android listview去掉分割线 && 去除或替换listview 默认的点击选中时的颜色
- L1-011. A-B
- 九度OJ 题目1018:统计同成绩学生人数(利用Hash)
- sql命令
- UVA 1395 生成树