如何进行分页查询mybatis
时间: 2023-10-20 15:27:52 浏览: 87
Mybatis框架(分页查询)
在 MyBatis 中进行分页查询可以通过使用插件或手动设置分页参数来实现。下面我将介绍两种常用的方法。
方法一:使用插件
1. 首先,创建一个实现了 MyBatis 的 Interceptor 接口的分页插件。你可以使用第三方提供的插件,如 PageHelper、MyBatis-Paginator 等,或者自己编写一个插件。
2. 在插件的 `intercept` 方法中,获取到查询语句的参数,并根据参数中的分页信息,修改 SQL 语句,添加分页查询的限制条件。
3. 在配置文件(如 XML 文件)中配置插件,并指定插件的执行顺序。
4. 在需要进行分页查询的 Mapper 接口方法上添加 `@Intercepts` 注解,声明要拦截的方法。
方法二:手动设置分页参数
1. 在 Mapper 接口方法的参数列表中添加 `@Param` 注解,用于传递分页参数。
2. 在 SQL 语句中使用 MyBatis 提供的分页函数(如 MySQL 中的 `LIMIT`),并传入分页参数。
下面是一个示例:
方法一(使用 PageHelper 插件):
1. 引入 PageHelper 依赖:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>最新版本</version>
</dependency>
```
2. 配置 PageHelper 插件及其属性(例如在 XML 配置文件中):
```xml
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="dialect" value="mysql"/> <!-- 数据库方言 -->
<property name="reasonable" value="true"/> <!-- 启用合理化 -->
</plugin>
</plugins>
```
3. 在 Mapper 接口方法中添加分页参数,并使用 PageHelper 的静态方法进行分页查询:
```java
List<User> getUsers(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);
```
方法二(手动设置分页参数):
```java
List<User> getUsers(@Param("offset") int offset, @Param("limit") int limit);
```
在 XML 映射文件中的 SQL 语句中使用分页函数(例如 MySQL 中的 `LIMIT`):
```xml
SELECT * FROM user LIMIT #{offset}, #{limit}
```
以上是两种常用的方法,你可以根据自己的需求选择其中一种来实现分页查询。
阅读全文