一、PageHelper简介
pagehelper是mybatis 提供的分页插件,目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库。
二、使用PageHelper
1、添加依赖
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.6</version> </dependency>
2、在配置文件application.yml配置文件中添加分页配置
#分页pageHelper pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true
配置项说明:
helper-dialect:
配置使用哪种数据库语言,不配置的话pageHelper也会自动检测
reasonable:
配置分页参数合理化功能,默认是false。 #启用合理化时,如果pageNum<1会查询第一页,如果pageNum>总页数会查询最后一页; #禁用合理化时,如果pageNum<1或pageNum>总页数会返回空数据。
params:
为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值; 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, 默认值为pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。
support-methods-arguments:
支持通过Mapper接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。
3、在代码中使用
@SpringBootTest public class UserMapperTest { @Resource private UserMapper userMapper; public static void test(){ System.out.println("test"); } @Test public void testSelectList(){ PageHelper.startPage(1,2); List<User> userList=userMapper.selectList(null); PageInfo<User> pageInfo=new PageInfo<>(userList); userList.forEach(System.out::println); System.out.println("总记录数:"+pageInfo.getTotal()); System.out.println("总页数:"+pageInfo.getPages()); } }
生成的SQL语句:
SELECT id,name,tel,age FROM user LIMIT ?
调用startPage方法以后,会自动在sql语句中加上分页。
0条评论
点击登录参与评论