SpringBoot集成PageHelper分页实现

本文介绍了PageHelper这个开源插件,用于简化MyBatis中的分页查询,包括依赖引入、Mapper接口配置、Service层调用和Controller层接口实现。详细说明了如何在SpringBoot项目中集成和使用PageHelper进行数据库分页操作。
摘要由CSDN通过智能技术生成

目录

1.相关介绍

2.使用方式

        1.引入 PageHelper 依赖

        2.编写Mapper接口和xml映射

        3.编写Service(此处直接写Impl,接口省略)

        4.控制层Controller


1.相关介绍

        PageHelper 是一个开源的 MyBatis 分页插件,可以帮助开发者方便地实现数据库分页查询功能。它通过拦截 Mapper 方法的调用,自动在 SQL 语句中添加分页相关的信息,从而实现数据库查询结果的分页处理。

        使用 PageHelper 可以简化代码编写,避免手动编写复杂的分页逻辑,提高开发效率并降低出错风险。同时,PageHelper 的社区活跃,持续更新和维护,可以获取到及时的技术支持和问题解决方案。

        PageHelper 提供了丰富的功能和配置选项,包括但不限于:

        (1)支持多种数据库方言,如 MySQL、Oracle、SQL Server 等。

        (2)可以自定义分页查询的各种参数,如页码、每页数量、排序等。

        (3)提供了丰富的分页信息,如总记录数、总页数、当前页码等。

        (4)支持物理分页和逻辑分页两种方式,适用于不同的场景需求。

        (5)可以通过注解或配置文件的方式来配置分页插件。

2.使用方式

        1.引入 PageHelper 依赖
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.5</version>
        </dependency>
        2.编写Mapper接口和xml映射
@Mapper
public interface UserMapper{

        List<User> getAllByPage(Integer start,Integer size);

}
<?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.zhan.zhan215.Dao.UserMapper">

   <select id="getAllByPage" resultType="com.zhan.zhan215.Entity.User">
        select *
        from user
    </select>

</mapper>
        3.编写Service(此处直接写Impl,接口省略)

        在 Service 层中使用 PageHelper.startPage() 方法进行分页设置,然后调用 Mapper 接口方法进行查询,最后将查询结果封装成 PageInfo 对象返回给前端页面:

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.zhan.zhan215.Dao.UserMapper;
import com.zhan.zhan215.Entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {


    @Autowired
    private UserMapper userMapper;

    public PageInfo<User> getAllByPage(Integer page, Integer size){

        PageHelper.startPage(page,size);

        List<User> allByPage = userMapper.getAllByPage(page, size);

        return new PageInfo<>(allByPage);

    }

}
        4.控制层Controller

        在控制器层接收前端传入的分页参数,并调用 Service 层方法进行分页查询。 

@RestController
@RequestMapping("/user")
public class UserController {


       @Resource
       private UserService userService;


       @GetMapping("/getAllByPage")
       public ResponseBean getAllByPage(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "2") Integer size) {

          return ResponseBean.success(userService.getAllByPage(page, size));

       }



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜗牛变涡流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值