Java springboot 分页查询

本文详细介绍了如何在SpringBoot项目中使用PageHelper进行分页查询,包括引入依赖、Controller层的@GetMapping注解、Service层的PageHelper调用、Mapper层的SQL编写以及Service层返回统一的PageResult。
摘要由CSDN通过智能技术生成
1:首先我们需要在pom文件中引入 pagehelper的依赖
​
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>

​

 然后基本上进行分页查询的请求都是get请求

所以在Controller层上我们都需要进行@GetMapping() 注解

2:我们需要在Service层直接调用Springboot框架提供的Pagehelpr的方法
 //开始分页查询
 PageHelper.startPage();

注意startPage()是开始分页查询的方法,需要两个参数,第一个参数是页码,第二个参数是每页的记录数。(一般这两个参数都封装在pojo层的对应的DTO类中)

我们要进行分页查询在service调用自己写的分页查询方法,返回值必须是一个Page<> 类型的集合

泛型根据需求文档中所给的类型进行填写。

3:在Mapper层实现分页查询

调用自己写的方法。然后写sql语句进行分页查询

注意!在进行分页查询的时候我们最好在xml文件中去写sql语句,因为我们要进行动态sql语句的填写。

下面是案例

<mapper namespace="com.sky.mapper.EmployeeMapper">

    <select id="pageQuery" resultType="com.sky.entity.Employee">
        select *from employee
        <where>
        <if test="name !=null and name !=''">
            and name like concat('%',#{name},'%')
        </if>

        </where>
        order by create_time desc

    </select>
</mapper>

resultType是泛型的全类名,id就是咱们写的方法名

pagehelper会自动的进行sql语句的拼接 省去了limit()这一步。

4:完善我们在Service层的代码

我们分页查询接口的最终返回值因该是统一响应结果pageResult类(自己定义的) 返回给前端的。其中这个类需要两个参数,一个是查询数目的总记录数,一个是当前页数据集合

这两个参数我们都可以从调用Pagehelper为我们提供的Page类获取

​
 //总记录数
 long total = page.getTotal();

//当前页数据集合
 List<Employee> records = page.getResult();

​//返回结果必须是PageResult里面俩参数分别对应 得到的page里面的俩方法的结果
 return new PageResult(total,records);

以下是Controller 层分页查询的完整代码

//分页查询
    @Override
    public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {
        //开始分页查询
        PageHelper.startPage(employeePageQueryDTO.getPage(),employeePageQueryDTO.getPageSize());

        Page<Employee>page=employeeMapper.pageQuery(employeePageQueryDTO);
        long total = page.getTotal();
        List<Employee> records = page.getResult();
        //返回结果必须是PageResult里面俩参数分别对应 得到的page里面的俩方法的结果
        return new PageResult(total,records);
    }

感谢大佬们的阅读。

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值