2023-03-13 15:27

SpringBoot中使用PageHelper

少尉

JavaEE

(437)

(0)

收藏

一、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条评论

点击登录参与评论