springboot几种sql分页查询(分页实现)

1:使用 LIMIT #{offset}, #{limit} 进行分页,使用 @Param 注解来传递分页参数,并在 SQL 语句中使用分页关键字

public interface EntityDemoMapper extends BaseMapper<EntityDemo> {
    @Select("SELECT * FROM entity_demo LIMIT #{offset}, #{limit}")
    List<EntityDemo> selectPage(@Param("offset") int offset, @Param("limit") int limit);
}

2:使用 PageHelper 这个工具类来实现

2-1:引入依赖

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.3.0</version>
</dependency>

2-2:使用 PageHelper.startPage(pageNum, pageSize) 来开启分页功能。这个方法会将后续执行的第一个查询进行分页处理,第二个查询就不会分页,需要分页还需要在查询上面加一行entityDemoOne

public interface EntityDemoMapper extends BaseMapper<EntityDemo> {
    default List<EntityDemo> selectPage(int pageNum, int pageSize) {
        // 开启分页
        PageHelper.startPage(pageNum, pageSize);
        // 执行查询
        //分页
        List<EntityDemo> entityDemoOne = entityDemoMapper.testSql(); 
        //未分页
        List<EntityDemo> entityDemoTwo = entityDemoMapper.testSql();
        return entityDemoOne ;
    }
}

3: Spring Boot 中,要使 MyBatis-Plus 的分页插件生效,你需要进行以下配置步骤

3-1:导入依赖mybatis-plus,对应版本3.4版本兼容新旧插件,3.5.1开始不兼容旧插件类(PaginationInterceptor)

<!-- MyBatis-Plus -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>最新版本</version>
</dependency>

3-2:注册分页插件:创建一个配置类,用于注册 MyBatis-Plus 的分页插件

@Configuration
public class MyBatisPlusConfig {
    @Bean
    //这是mybatis-plus3.4和3.5版本
    public MybatisPlusInterceptor paginationInterceptor() {
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return mybatisPlusInterceptor;
    }
}
@Configuration
public class MyBatisPlusConfig {
    @Bean
    //这是mybatis-plus3.5以下版本
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是SpringBoot和MyBatis实现分页查询的步骤: 1.在pom.xml文件中引入MyBatis和PageHelper的依赖包: ```xml <!-- 引入MyBatis依赖 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <!-- 引入MyBatis 分页插件pageHelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency> ``` 2.在application.properties文件中配置PageHelper: ```properties # PageHelper配置 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql ``` 3.在Mapper.xml文件中编写分页查询SQL语句: ```xml <!-- 分页查询 --> <select id="selectByPage" resultType="com.example.demo.entity.User"> select * from user <where> <if test="name != null and name != ''"> and name like concat('%', #{name}, '%') </if> </where> order by id desc </select> ``` 4.在Service层中调用Mapper的分页查询方法: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public PageInfo<User> selectByPage(Integer pageNum, Integer pageSize, String name) { PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.selectByPage(name); return new PageInfo<>(userList); } } ``` 5.在Controller层中接收前端传来的分页参数,并调用Service层的分页查询方法: ```java @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public PageInfo<User> selectByPage(@RequestParam(defaultValue = "1") Integer pageNum, @RequestParam(defaultValue = "10") Integer pageSize, String name) { return userService.selectByPage(pageNum, pageSize, name); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值