mybatis几种分页查询的方法
时间: 2023-08-13 17:17:44 浏览: 142
pageHelper的使用
5星 · 资源好评率100%
在 MyBatis 中,常见的分页查询方法有以下几种:
1. 使用 LIMIT 和 OFFSET 关键字进行分页
这是一种最常见的分页查询方法。在 SQL 语句中使用 LIMIT 和 OFFSET 关键字来限制查询结果的数量和起始位置,例如:
```sql
SELECT * FROM table_name LIMIT start, pageSize;
```
其中,start 表示查询结果的起始位置,pageSize 表示每页的记录数。在 MyBatis 中,可以使用占位符和参数的方式来动态生成 SQL 语句,例如:
```xml
<select id="findUsers" parameterType="map" resultType="User">
select * from user
<where>
<if test="username != null and username != ''">
and username like #{username}
</if>
</where>
order by id desc
limit #{start}, #{pageSize}
</select>
```
2. 使用 RowBounds 进行分页
RowBounds 是 MyBatis 提供的一个用于分页查询的类,它可以在查询语句中指定起始位置和查询数量,例如:
```java
List<User> users = sqlSession.selectList("findUsers", null, new RowBounds(start, pageSize));
```
这种方法需要在查询语句中不使用 LIMIT 和 OFFSET 关键字,而是在查询方法中使用 RowBounds 来指定分页参数。
3. 使用 MyBatis 分页插件进行分页
MyBatis 提供了一些分页插件,例如 PageHelper、Mybatis-Plus 等,它们可以方便地实现分页查询功能,只需要在项目中引入对应的依赖即可。使用插件进行分页查询的示例代码如下:
```java
PageHelper.startPage(pageNum, pageSize);
List<User> users = userDao.findUsers(username);
PageInfo<User> pageInfo = new PageInfo<>(users);
return new Page<>(pageInfo.getTotal(), users);
```
其中,PageHelper 是一个 MyBatis 分页插件,它封装了分页查询的逻辑,只需要调用 startPage() 方法来指定页码和每页的记录数,然后在查询方法返回后调用 PageInfo 类来获取分页查询结果。这种方法简单易用,不需要手动编写分页查询语句。
阅读全文