非常抱歉,刚刚提供的例子中确实没有使用任何插件来实现分页。以下是如何使用 MyBatis 分页插件来实现分页的详细步骤:
**1. 添加 MyBatis 分页插件的依赖:**
Maven 依赖:
```xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.1</version>
</dependency>
```
Gradle 依赖:
```gradle
implementation 'com.github.pagehelper:pagehelper:5.2.1'
```
**2. 配置 MyBatis 分页插件:**
在 MyBatis 配置文件(mybatis-config.xml)中添加分页插件的配置:
```xml
<!-- mybatis-config.xml -->
<configuration>
<!-- ... 其他配置 ... -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="dialect" value="mysql"/>
</plugin>
</plugins>
</configuration>
```
在这个例子中,我们使用了 MySQL 数据库,所以将 `dialect` 设置为 `"mysql"`。
**3. 在 Mapper 接口中添加分页方法:**
```java
public interface UserMapper {
List<User> getUsersByPage();
}
```
**4. 编写分页查询的 SQL 语句:**
在 XML 映射文件(userMapper.xml)中编写带有分页的查询语句:
```xml
<!-- userMapper.xml -->
<select id="getUsersByPage" resultType="com.example.model.User">
SELECT id, username, email
FROM users
</select>
```
**5. 使用分页查询:**
```java
public class Main {
public static void main(String[] args) {
String resource = "mybatis-config.xml";
try (InputStream inputStream = Resources.getResourceAsStream(resource)) {
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
try (SqlSession session = sqlSessionFactory.openSession()) {
UserMapper userMapper = session.getMapper(UserMapper.class);
// 使用 PageHelper.startPage 方法来设置分页信息
PageHelper.startPage(1, 10); // 第一页,每页10条记录
List<User> users = userMapper.getUsersByPage();
for (User user : users) {
System.out.println(user);
}
// 获取分页信息
PageInfo<User> pageInfo = new PageInfo<>(users);
System.out.println("Total records: " + pageInfo.getTotal());
System.out.println("Total pages: " + pageInfo.getPages());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个例子中,我们使用了 MyBatis 分页插件的 `PageHelper.startPage` 方法来设置分页信息,并通过 `PageInfo` 对象获取分页信息。插件会自动在查询执行后添加分页 SQL。
这是使用 MyBatis 分页插件实现分页的一个完整示例。插件可以根据不同的数据库方言自动生成适用于不同数据库的分页 SQL。