mybatis原生分页
时间: 2023-10-11 17:12:33 浏览: 117
MyBatis原生支持分页,它提供了两种常见的分页方式:基于物理分页和基于逻辑分页。
1. 基于物理分页:
- 在SQL语句中使用`limit`和`offset`关键字来实现分页。`limit`表示每页的记录数,`offset`表示偏移量,即从第几条记录开始查询。
- 在Mapper接口中定义方法时,通过参数传递`limit`和`offset`来实现分页。
- 通过MyBatis的插件PageHelper来简化物理分页的操作。PageHelper会自动拦截查询方法,根据传入的分页参数进行分页查询。
2. 基于逻辑分页:
- 使用MySQL的`ROW_NUMBER()`函数或Oracle的`ROWNUM`来实现逻辑分页。
- 在SQL语句中嵌套一个子查询,并在子查询中使用`ROW_NUMBER()`或`ROWNUM`来生成行号,然后在外层查询中通过条件过滤获取指定页的数据。
下面是一个使用物理分页的示例代码:
```java
// Mapper接口
public interface UserMapper {
List<User> getUserList(@Param("limit") int limit, @Param("offset") int offset);
}
// Mapper XML
<select id="getUserList" resultType="com.example.User">
SELECT * FROM users
LIMIT #{limit} OFFSET #{offset}
</select>
```
可以在调用该方法时传入`limit`和`offset`参数来实现分页查询。
如果你想使用基于逻辑分页的方式,可以根据具体的数据库类型和语法进行相应的调整。
阅读全文