https://github.com/pagehelper/Mybatis-PageHelper
实现步骤
【无Sprin-boot的情况下】
maven坐标
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.0</version></dependency>
加入plugin配置
plugin标签只能放在 environments前面
<plugins><plugin interceptor="com.github.pagehelper.PageInterceptor" /></plugins><environments default="myDev">
或者采用如下配置方法(在spring配置mybatis的文件中)
<!-- 创建mybatis的sqlSessionFactoryBean--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:conf/mybatis-config.xml"/><property name="mapperLocations" value="classpath:mybatis/mapper/AdminMapper.xml"/><property name="plugins"><array><!-- PageHelper5.0之后使用该方法进行配置插件--><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><value>reasonable=true</value></property></bean></array></property></bean>
- 在要分页的查询语句之前加上Pagehelper的方法
PageHelper.startPage(pageNum, pageSize)
- pageNum:第几页
- pageSize:每页有几项内容
@Testpublic void testSelectAllStudents(){SqlSession sqlSession = MyBatisUtils.getSqlSession();StudentDao studentDao = sqlSession.getMapper(StudentDao.class);// PageHelper会将紧随其后的查询结果进行分页处理PageHelper.startPage(2, 3);List<Student> res = studentDao.selectAllStudents();res.forEach(student -> System.out.println(student));}
结果
先计算有多少行==> Preparing: SELECT count(0) FROM student==> Parameters:<== Columns: count(0)<== Row: 4<== Total: 1==> Preparing: select id, name, email, age from student LIMIT ?, ?==> Parameters: 3(Long), 3(Integer)<== Columns: id, name, email, age<== Row: 1005, 张飞, zhangfei@163.com, 20<== Total: 1
