springBoot整合PageHelper实现分页

发布时间 2023-05-25 15:02:18作者: or追梦者

准备

依赖

        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>5.1.2</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>

 

application.xml

pagehelper:
# helper-dialect:需要进行分页的数据库,如果不配置会默认进行分析
helper-dialect: mysql

# reasonable分页参数合理化,默认是false。
# 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页;
# 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据
reasonable: true

# support-methods-arguments支持通过 Mapper 接口参数来传递分页参数
# 默认值 false
support-methods-arguments: true

# params为了支持startPage(Object params)方法,增加了该参数来配置参数映射,
# 用于从对象中根据属性名取值
# 默认值为 countSql
params: count=countsql


Mapper.xml

sal语句中不用手动添加limit

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.dao.UserMapper">

  <sql id="Base_Column_List">
    user_id, card_type, card_no, user_name, user_sex, user_age, user_role
  </sql>
  <!--查询的Sql语句-->
  <select id="selectAll" resultType="com.example.entity.User">
    select <include refid="Base_Column_List"/> from user
  </select>
 </mapper>

 

test

@SpringBootTest
class SpringBootSsm08ApplicationTests {
    @Resource
    private UserMapper userMapper;
    @Test
    public void testMapper() {
        //这句话一定要在执行查询语句之前先声明,确定需要查询的页数和每页查询几条数据
        PageHelper.startPage(2,3);
        List<User> userList = userMapper.selectAll();
        PageInfo<User> pageInfo = new PageInfo<>(userList);
        List<User> list = pageInfo.getList();
        //输出一下pageInfo对象
        System.out.println(pageInfo);
        System.out.println("---------------");
        for(User user:list){
            System.out.println(user);
        }
    }
 }

 

访问验证

拦截后自动填加limit