在 MyBatis 中进行分页查询可以通过以下两种方式实现:
1. 使用数据库特定的分页语句:不同的数据库有不同的分页语句,例如 MySQL 的 `LIMIT`、Oracle 的 `ROWNUM` 等。可以根据数据库的特性,在 SQL 语句中使用相应的分页语句实现分页查询。
示例(使用 MySQL 的 LIMIT):
```xml
<select id="getUserList" resultType="User">
SELECT * FROM user
LIMIT #{start}, #{pageSize}
</select>
```
在查询方法的参数中设置 `start`(起始索引)和 `pageSize`(每页记录数),用于控制分页查询。
2. 使用 MyBatis 的 `RowBounds`:`RowBounds` 是 MyBatis 提供的一个简单的分页实现,它通过设置偏移量和限制数量来实现分页查询。
示例:
```java
List<User> getUserList(RowBounds rowBounds);
```
在查询方法的参数中传入 `RowBounds` 对象,并通过设置偏移量和限制数量来进行分页查询。
```java
RowBounds rowBounds = new RowBounds(start, pageSize);
List<User> userList = userMapper.getUserList(rowBounds);
```
需要注意的是,分页查询的实现方式取决于具体的数据库和需求。使用数据库特定的分页语句可以充分利用数据库的优化特性,但可能会造成数据库的移植性问题。而使用 MyBatis 的 `RowBounds` 则比较简单通用,但不适用于大数据量的分页查询。
此外,还可以结合动态 SQL 标签如 `<if>`、`<choose>` 等来在分页查询中实现动态条件。通过传入页码、每页记录数等参数,可以在查询语句中动态生成相应的分页条件,实现灵活的分页查询功能。