一、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条评论
点击登录参与评论