使用pagehelper 实现 mybatis 分页查询

4 篇文章 1 订阅
2 篇文章 0 订阅

1. 添加依赖:

首先,你需要在项目的pom.xml文件中添加PageHelper的依赖。具体如下:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.2</version> <!-- 请按需选择适合你的版本 -->
</dependency>

如果是spring boot项目,请引用

<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper-spring-boot-starter</artifactId>
	<version>1.2.5</version> <!-- 请按需选择适合你的版本 -->
</dependency>


2. 配置PageHelper:

方式一: Mybatis的配置文件(例如mybatis-config.xml)中配置PageHelper插件。具体如下:

<configuration>
    ...
    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper">
            <!-- 这里的参数可以设置一些属性 -->
            <property name="dialect" value="mysql"/>
            <property name="reasonable" value="true"/>
            <property name="supportMethodsArguments" value="true"/>
            <property name="params" value="count=countSql"/>
        </plugin>
    </plugins>
    ...
</configuration>

方式二: 在Spring Boot中使用Mybatis。在这种情况下,你可以通过在application.properties或application.yml文件中添加配置来配置PageHelper。

  • 在application.properties文件中配置PageHelper的示例:

    pagehelper.helperDialect=mysql
    pagehelper.reasonable=true
    pagehelper.supportMethodsArguments=true
    pagehelper.params=count=countSql
    
    
  • 如果你的项目中使用的是application.yml文件,配置PageHelper的示例如下:

    pagehelper:
      helperDialect: mysql
      reasonable: true
      supportMethodsArguments: true
      params: count=countSql
    
    

在Spring Boot项目中,你还需要添加Mybatis的启动器依赖,示例如下:

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.4</version> <!-- 请按需选择适合你的版本 -->
</dependency>

记住,在Spring Boot中配置PageHelper的属性时,如果配置名称中包含大写字母,那么在application.properties或application.yml文件中,你应该使用小写字母并使用连字符(-)替换大写字母。例如,supportMethodsArguments应写为support-methods-arguments。

3.在代码中使用PageHelper:

使用PageHelper进行分页非常简单。在查询之前,只需要调用PageHelper的startPage方法即可。具体如下:

PageHelper.startPage(1, 10); // 第一个参数是页数,第二个参数是每页的大小
List<User> users = userMapper.selectByExample(new UserExample());

这样,返回的users列表就是分页查询的结果。注意,startPage方法只对紧随其后的第一个查询语句起作用,也就是说这个方法是基于ThreadLocal的。

4. 获取更多分页信息:

如果你还需要获取如总页数、总记录数等更多的分页信息,你可以将查询结果转化为PageInfo对象。具体如下:

PageHelper.startPage(1, 10);
List<User> users = userMapper.selectByExample(new UserExample());
PageInfo<User> pageInfo = new PageInfo<>(users);

然后,你可以通过PageInfo对象获取更多的分页信息,例如:

long total = pageInfo.getTotal(); // 获取总记录数
int pages = pageInfo.getPages(); // 获取总页数
List<User> list = pageInfo.getList(); // 获取当前页的数据

这就是PageHelper的基本使用方法。注意,PageHelper的分页查询是基于物理分页的,也就是说,查询结果是直接从数据库中提取的,而不是从内存中过滤的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个能够极大简化Spring应用开发的框架,而PageHelperMyBatis分页插件,而MyBatis Plus则是MyBatis的增强工具包。SpringBoot整合PageHelperMyBatis Plus可以简化分页操作,示例代码如下: 1.首先,在pom.xml文件中添加PageHelperMyBatis Plus的依赖: ```xml <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>最新版本号</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>最新版本号</version> </dependency> ``` 2.配置MyBatis Plus的分页插件 ```java @Configuration public class MybatisPlusConfig { @Autowired private DataSource dataSource; @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } @Bean public SqlSessionFactory sqlSessionFactory() throws Exception { MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean(); sqlSessionFactory.setDataSource(dataSource); sqlSessionFactory.setPlugins(new Interceptor[]{paginationInterceptor()}); //添加分页插件 return sqlSessionFactory.getObject(); } } ``` 3.使用PageHelper分页接口进行分页 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public Page<User> findUserList(Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.selectList(null); PageInfo<User> pageInfo = new PageInfo<>(userList); return pageInfo.toPageInfo(); } } ``` 4.使用MyBatis Plus的分页接口进行分页 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public IPage<User> findUserList(Integer pageNum, Integer pageSize) { Page<User> page = new Page<>(pageNum, pageSize); return userMapper.selectPage(page, null); } } ``` 以上便是使用Spring Boot整合PageHelperMyBatis Plus进行分页的示例代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值