21xrx.com
2025-04-16 10:18:20 Wednesday
文章检索 我的文章 写文章
Java PageHelper使用:实现分页查询更便捷
2023-06-17 05:29:34 深夜i     10     0
Java PageHelper MyBatis 分页 查询 开源 便捷 配置 参数 数据源

文章:

在Java开发中,经常需要使用分页查询功能来优化查询效率。而PageHelper就是一个能够帮助我们快速实现分页查询的开源插件。本文将介绍Java PageHelper的使用方法,以及如何在项目中应用它。

1. 简介

PageHelper是一个基于MyBatis的分页插件,具有简单易用、支持多种数据源等特点。使用PageHelper可以轻松实现分页查询,提高开发效率。

2. 安装

在项目中使用PageHelper需要引入相应的依赖,这里以Maven为例:

com.github.pagehelper
 
  
  pagehelper
 
  
  5.2.0

3. 配置

在Spring Boot项目中配置PageHelper需要在application.properties或application.yml文件中添加如下配置:

mybatis.configuration.map-underscore-to-camel-case=true #开启驼峰命名自动映射
pagehelper.helper-dialect=mysql #指定数据库类型
pagehelper.reasonable=true #开启合理化分页(当请求页数小于1或大于总页数时会自动请求第一页或最后一页)
pagehelper.support-methods-arguments=true #支持分页参数作为方法参数
pagehelper.params=count=countSql #指定统计查询的sql语句

4. 使用

在DAO接口方法上添加PageHelper.startPage()方法即可实现分页查询。例如在Mybatis的Mapper.xml文件中:

select * from user            name like CONCAT('%',#{name},'%')        order by id desc

对应DAO接口方法如下:

@Mapper
public interface UserMapper {
  List
  findUsersByPage(@Param("name") String name);
 
}

在Service层调用DAO方法时,添加PageHelper.startPage()方法:

@Service
public class UserServiceImpl implements UserService {
  @Autowired
  private UserMapper userMapper;
  @Override
  public PageInfo
  findUsersByPage(String name, int pageNum, int pageSize) {
 
    // PageHelper.startPage()方法指定需要分页的页码和每页数据量
    PageHelper.startPage(pageNum,pageSize);
    List
  users=userMapper.findUsersByPage(name);
 
    PageInfo
  pageInfo = new PageInfo<>(users);
 
    return pageInfo;
  }
}

通过调用PageInfo对象的相关方法,可以获取到当前页码、每页数据量、总页数等分页信息,以及查询出来的数据。

5. 总结

通过本文的介绍,我们可以看到使用PageHelper实现分页查询非常简单,只需引入插件、配置相关参数和在DAO层添加分页语句即可。PageHelper不仅支持MyBatis,还支持JPA、Hibernate等多种数据源,在实际开发中可以根据需求选择合适的数据源使用。

  
  

评论区

请求出错了