【视频 & 交流平台】
http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share
https://gitee.com/happyangellxq520/spring-boot
http://412887952-qq-com.iteye.com/blog/2321532
【本篇博客,有配套视频,视频地址:《Spring Boot MyBatis升级篇-注解-分页查询》,公众号中点击下面的阅读原文,视频中讲解的更详细】
需求缘起:
在上一篇博客中,我们介绍了MyBatis的增删改查,对于查询的话,我们查询出了全部数据,在实际中我们可能需要分页查询,一次查询出10条数据进行展示,然后用户点击下一页的时候,展示下一页的数据。在这里我们主要使用了一个插件PageHelper。先看下本节的大纲:
本节大纲:
(2)PageHelper介绍
(3)集成准备
(4)配置文件编写
(5)编码测试
接下来看看具体的内容:
(1)集成原理说明
MyBatis提供了拦截器接口,我们可以实现自己的拦截器,将其作为一个plugin装入到SqlSessionFactory中。
(2)PageHelper介绍
PageHelper是Github上有位开发者写了一个分页插件,可以很方便的添加到MyBatis的拦截器接口中。
Github项目地址: https://github.com/pagehelper/Mybatis-PageHelper
(3)集成准备
集成PageHelper很简单,只需要在pom.xml文件中添加如下依赖:
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.1.0</version> </dependency>
(4)配置文件编写
我们需要新增一个配置文件:
新增MyBatisConfiguration.java
package com.kfit.config; import java.util.Properties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.github.pagehelper.PageHelper; /** * mybatis配置类. * @author Angel --守护天使 * @version v.0.1 * @date 2017年7月22日 */ @Configuration public class MyBatisConfiguration { /** * 注册MyBatis分页插件PageHelper * @return */ @Bean public PageHelper pageHelper() { System.out.println("MyBatisConfiguration.pageHelper()"); PageHelper pageHelper = new PageHelper(); Properties p = new Properties(); p.setProperty("offsetAsPageNum", "true"); p.setProperty("rowBoundsWithCount", "true"); p.setProperty("reasonable", "true"); pageHelper.setProperties(p); return pageHelper; } }
(5)编码测试
这个使用起来特别的简单,只是在原来查询全部的代码之前加入一句:
PageHelper.startPage(1,2);
第一个参数是第几页;第二个参数是每页显示条数。
具体的代码示例如下:
@RequestMapping("/selectAll") public List<Demo> selectAll(@RequestParam(defaultValue="1")intpageNum){ PageHelper.startPage(pageNum, 2); return demoService.selectAll(); }
访问http://127.0.0.1:8080/selectAll?pageNum=2进行测试。
视频&交流平台:
http://study.163.com/course/introduction.htm?courseId=1004329008
http://412887952-qq-com.iteye.com/blog/2321532