PageHelper实现Mybatis的插件分页(SSM+maven+jsp)
2019-03-13 21:31
417 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_38105115/article/details/88542059
PageHelper是Mybatis的一个插件,可以比较智能化的实现分页,把参数都封装到PageInfo中,我们实现分页,首先应该了解PageInfo参数说明,PageInfo参数如下:
//当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int size; //由于startRow和endRow不常用,这里说个具体的用法 //可以在页面中"显示startRow到endRow 共size条数据" //当前页面第一个元素在数据库中的行号 private int startRow; //当前页面最后一个元素在数据库中的行号 private int endRow; //总记录数 private long total; //总页数 private int pages; //结果集(每页显示的数据) private List<T> list; //第一页 private int firstPage; //前一页 private int prePage; //是否为第一页 private boolean isFirstPage = false; //是否为最后一页 private boolean isLastPage = false; //是否有前一页 private boolean hasPreviousPage = false; //是否有下一页 private boolean hasNextPage = false; //导航页码数 private int navigatePages; //所有导航页号 private int[] navigatepageNums;
我用的是maven+jsp+ssm实现这个分页。其中包括中间所出的问题
1,我们先导入依赖
pom.xml
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.1</version> </dependency>
2,在配置SqlSessionFactory的里边添加如下代码,如果不添加这个会出现PageInfo的数据不正确,比如总数应该是20条,但是它只显示当前页面的条数。
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 注入数据库连接池 --> <property name="dataSource" ref="dataSource"/> <!-- 配置MyBaties全局配置文件:mybatis-config.xml --> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!-- 扫描pojo包 使用别名 --> <property name="typeAliasesPackage" value="com.zxzc.pojo"/> <!-- 扫描sql配置文件:mapper需要的xml文件 --> <property name="mapperLocations" value="classpath:mapper/*.xml"/> **//添加这个plugins属性值** <property name="plugins"> <array> <bean class="com.github.pagehelper.PageInterceptor"> <property name="properties"> <!--可以不用配置,使用默认的就可以 --> <value> </value> </property> </bean> </array> </property> </bean>
3,后台代码展示(如果PageHelper.startPage(pageNum, pageSize)后边除了如下所示展示所有信息这一个逻辑之外,还有另外的逻辑代码,则PageHelper分页失败,PaheInfo中参数会乱)
@ResponseBody @RequestMapping("/list") public ModelAndView list(@RequestParam(value = "pageNum",defaultValue = "1")int pageNum, @RequestParam(value = "pageSize",defaultValue = "8")int pageSize, Map<String,Object> map){ PageHelper.startPage(pageNum, pageSize); List<OrderDesc> orderDescList = managerOrderService.findAllList(); PageInfo<OrderDesc> pageInfo = new PageInfo<>(orderDescList); map.put("pageInfo",pageInfo); map.put("pageNum",pageNum); map.put("size",pageSize); return new ModelAndView("manage/manageOrderList",map); }
4,JSP页面展示,用的bootstrap的模板
<div class="row"> <div class="col-md-6"> 第${pageInfo.pageNum}页,共${pageInfo.pages}页,共${pageInfo.total}条记录 </div> <div class="col-md-6 offset-md-4"> <nav aria-label="Page navigation example"> <ul class="pagination pagination-sm"> <c:if test="${pageInfo.hasPreviousPage}"> <li class="page-item"> <a class="page-link" href="/manage/order/list?pageNum=${pageInfo.pageNum-1}"> 上一页 </a> </li> </c:if> <c:if test="${pageInfo.isFirstPage==true}"> <li class="page-item"> <a class="disabled" href="#"> 上一页 </a> </li> </c:if> <c:forEach items="${pageInfo.navigatepageNums}" var="page"> <c:if test="${page==pageInfo.pageNum}"> <li class="page-item active"> <a class="page-link" href="#">${page}</a></li> </c:if> <c:if test="${page!=pageInfo.pageNum}"> <li class="page-item"> <a class="page-link" href="/manage/order/list?pageNum=${page}"> ${page} </a> </li> </c:if> </c:forEach> <c:if test="${pageInfo.hasNextPage}"> <li class="page-item"> <a class="page-link" href="/manage/order/list?pageNum=${pageInfo.pageNum+1}"> 下一页 </a> </li> </c:if> <c:if test="${pageInfo.isLastPage==true}"> <li class="page-item"> <a class="disabled" href="#"> 下一页 </a> </li> </c:if> </ul> </nav> </div> </div>
这是测试的时候后台传过来的数据,PageInfo的所有信息
测试结果如下
这就是PageHelper实现分页,请大家看准那几个问题,我也总结的不太全,总共遇见这几个问题,如果又补充或者错误,希望各位提出宝贵意见!
相关文章推荐
- Mybatis的插件 PageHelper分页以及jsp实现代码
- 在 SSM 中基于 MyBatis-PageHelper 分页插件的分页功能实现
- SSM框架集成PageHelper插件,实现分页功能
- Mybatis分页插件PageHelper实现自动分页
- MyBatis中如何使用PageHelper插件实现 分页
- SSM使用mybatis分页插件pagehepler实现分页示例
- MyBatis代码实例系列-10:MyBatis通过PageHelper插件实现分页查询
- Maven+Spring + Mybatis 使用 PageHelper 插件分页
- maven+spring+mybatis实现分页功能PageHelper(参数方式)
- Mybatis学习(4):Mybatis及PageHelper插件和easyUI实现分页
- Maven 基于SSM框架的增删改(使用了bootstrap的模态框,分页插件pagehelper, ajax等,附sql文件)
- 基于ssm框架的mybatis pagehelper分页插件的使用
- SSM框架中集成TKMybatis+PageHelper实现高效查询和分页
- SSM 使用 mybatis 分页插件 pagehepler 实现分页
- layui-ssm-mybatis插件pagehelper 分页查询
- [Extjs] Ext4 Ext.grid.Panel 分页实现(mybatis 分页插件-PageHelper 使用)
- SSM+easyUI结合Mybatis-PageHelper实现分页功能
- Mybatis的pageHelper插件实现分页
- mybatis实现分页插件PageHelper
- Spring + Mybatis 使用 PageHelper 插件分页