mybatis如何实现分页查询?

简介: 【10月更文挑战第19天】mybatis如何实现分页查询?

MyBatis 实现分页查询主要有两种方式:

  1. 使用 MyBatis 提供的 RowBounds 对象进行物理分页。
  2. 使用插件如 PageHelper 进行逻辑分页。

方法一:使用 RowBounds 对象

RowBounds 是 MyBatis 提供的一个用于分页的对象,它通过在 SQL 映射文件中指定 offset 和 limit 来实现分页。

示例代码:

public List<User> selectUsersByPage(int page, int pageSize) {
   
    SqlSession session = sqlSessionFactory.openSession();
    try {
   
        UserMapper mapper = session.getMapper(UserMapper.class);
        RowBounds rowBounds = new RowBounds((page - 1) * pageSize, pageSize);
        return mapper.selectAllUsers(rowBounds);
    } finally {
   
        session.close();
    }
}

在 UserMapper.xml 中定义 SQL:

<select id="selectAllUsers" resultType="User">
    SELECT * FROM users
</select>

方法二:使用 PageHelper 插件

PageHelper 是一个开源的 MyBatis 分页插件,它通过拦截器的方式实现了物理分页,使用起来更加简单方便。

首先添加 PageHelper 依赖到项目中:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>最新版本号</version>
</dependency>

然后在 MyBatis 配置文件中配置 PageHelper:

<plugins>
    <plugin interceptor="com.github.pagehelper.PageInterceptor">
        <property name="helperDialect" value="mysql"/>
        <!-- 其他属性 -->
    </plugin>
</plugins>

使用 PageHelper 进行分页查询:

public List<User> selectUsersByPage(int pageNum, int pageSize) {
   
    PageHelper.startPage(pageNum, pageSize);
    return userMapper.selectAllUsers();
}

在 UserMapper.xml 中定义 SQL:

<select id="selectAllUsers" resultType="User">
    SELECT * FROM users
</select>

以上两种方法都可以实现 MyBatis 的分页查询,选择哪种方式取决于个人或项目的需求。

目录
相关文章
|
6月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
|
6月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
|
6月前
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
|
6月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
|
6月前
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
|
Java 数据库连接 数据库
MyBatis分页查询及特殊字符的处理
MyBatis分页查询及特殊字符的处理
102 0
|
6月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
|
6月前
MybatisPlus分页查询
MybatisPlus分页查询
54 2
|
5月前
|
JSON 前端开发 数据格式
MyBatis-Plus动态分页查询
MyBatis-Plus动态分页查询
|
6月前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)