当前位置: 首页 > article >正文

mysql速学系列:mybatis分页和mybatis-plus分页

MyBatis 和 MyBatis-Plus 都是用于数据持久化的框架,它们都支持分页查询,但是在 Spring Boot 中的使用方式有所不同。

MyBatis 分页:
MyBatis 本身不提供内置的分页插件,但可以通过集成第三方分页插件来实现分页功能,最常用的是 PageHelper。

  1. 添加依赖: 在 Spring Boot 项目的 pom.xml 文件中添加 PageHelper 的依赖。

    <dependency>
        <groupId>com.github.pagehelper</groupId>
        <artifactId>pagehelper-spring-boot-starter</artifactId>
        <version>最新版本</version>
    </dependency>
    
  2. 配置分页插件: 在 Spring Boot 的配置类中配置 PageHelper,通常不需要额外配置,因为 PageHelper 会自动配置。

    @Configuration
    public class MyBatisConfig {
        @Bean
        public PageHelper pageHelper() {
            return new PageHelper();
        }
    }
    
  3. 使用分页: 在服务层或控制器层中使用 PageHelper 的 startPage 方法来指定分页参数,然后执行查询。

    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service
    public class UserService {
        @Autowired
        private UserMapper userMapper;
    
        public PageInfo<User> getUserPage(int pageNum, int pageSize) {
            PageHelper.startPage(pageNum, pageSize);
            List<User> users = userMapper.selectAll();
            return new PageInfo<>(users);
        }
    }
    

MyBatis-Plus 分页:
MyBatis-Plus 提供了内置的分页插件,使用起来更加方便。

  1. 添加依赖: 在 Spring Boot 项目的 pom.xml 文件中添加 MyBatis-Plus 的依赖。

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>最新版本</version>
    </dependency>
    
  2. 配置分页插件: 在 Spring Boot 的配置类中配置 MyBatis-Plus 的分页插件。

    import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
    import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class MyBatisPlusConfig {
        @Bean
        public MybatisPlusInterceptor mybatisPlusInterceptor() {
            MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
            interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
            return interceptor;
        }
    }
    
  3. 使用分页: 在服务层中使用 MyBatis-Plus 的 Page 对象来指定分页参数,然后调用 Mapper 接口的 selectPage 方法。

    import com.baomidou.mybatisplus.core.metadata.IPage;
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    @Service
    public class UserService {
        @Autowired
        private UserMapper userMapper;
    
        public IPage<User> getUserPage(int pageNum, int pageSize) {
            Page<User> page = new Page<>(pageNum, pageSize);
            return userMapper.selectPage(page, null); // 第二个参数可以传入查询条件
        }
    }
    

在 Spring Boot 中使用 MyBatis-Plus 分页时,通常不需要额外的配置,因为 MyBatis-Plus 已经内置了分页插件。而 MyBatis 则需要集成 PageHelper 这样的第三方分页插件。两者都能很好地满足分页查询的需求,选择哪一个取决于你的项目需求和个人偏好。


http://www.kler.cn/a/285874.html

相关文章:

  • 深度学习100问28:什么是RNNLM(RNN语言模型)
  • html和css知识点
  • sicp每日一题[1.40]
  • python-禁止抽烟
  • spring security 相关过滤器
  • QUIC(Quick UDP Internet Connections)协议
  • 【电子通识】失效分析中的电测试技术——电阻测试方法及注意事项
  • 进程、线程的区别
  • unity中的InstanceID详解 即Object.GetInstanceID
  • 【Redis】Redis 持久化 AOF、RDB—(七)
  • C++八股文之语言基础篇
  • 借老系统重构机会我写了个groovy规则引擎
  • 【AI 绘画】更快?更省显存?支持 FLUX?使用绘世启动器安装 SD WebUI Forge
  • 如何构建基于Java SpringBoot的汽车租赁系统?集成MySQL数据库,实现高效数据管理
  • Pandas 7-进行排序、多重排序
  • vue3中,vue-echarts基本使用(关系图、知识图谱、柱状图、饼图、折线图)
  • Ubuntu服务器时间和本地时间不一致怎么解决——Linux的Local Time和RTC time
  • antd vue switch组件怎么把值true、false改为uint32类型的1和0
  • 大二必做项目贪吃蛇超详解之中篇游戏设计与分析
  • ZBrush入门使用介绍——11、边缘环