- 添加依赖
在 pom.xml 文件中添加以下依赖,这是 MyBatis 分页插件的核心依赖:
<!-- Mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>最新版本</version>
</dependency>
<!-- Mybatis 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>最新版本</version>
</dependency>
- 配置分页插件
在配置类中添加以下代码,配置 MyBatis 分页插件:
@Configuration
public class MybatisConfig {
@Bean
public PageInterceptor pageInterceptor() {
PageInterceptor interceptor = new PageInterceptor();
Properties properties = new Properties();
// 设置分页插件的属性
properties.setProperty("helperDialect", "mysql");
properties.setProperty("reasonable", "true");
properties.setProperty("supportMethodsArguments", "true");
interceptor.setProperties(properties);
return interceptor;
}
}
其中,PageInterceptor 是 MyBatis 提供的分页插件,它可以拦截 MyBatis 的 SQL 执行过程,在执行前后进行一些额外的处理,例如分页、性能监控、防止 SQL 注入等。在配置中,我们设置了分页插件的属性,例如使用 MySQL 数据库,是否合理化分页等。
- 在 Mapper 接口中使用分页
在 Mapper 接口中定义查询方法时,可以使用 PageHelper.startPage 方法来开启分页,例如:
public interface UserMapper {
@Select("SELECT * FROM users WHERE username LIKE CONCAT('%', #{username}, '%')")
List<User> selectUsersByUsername(@Param("username") String username);
}
其中,@Select 注解用于定义 SQL 语句,#{username} 是一个参数,可以在后面的方法参数中绑定。在方法中使用 PageHelper.startPage 方法来开启分页,例如:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
public PageInfo<User> findUsersByUsername(String username, int pageNum, int pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<User> users = userMapper.selectUsersByUsername(username);
return new PageInfo<>(users);
}
}
其中,PageHelper.startPage 方法用于开启分页,pageNum 和 pageSize 用于指定页码和每页记录数,userMapper.selectUsersByUsername(username) 是 Mapper 方法的调用,返回一个查询结果列表,new PageInfo<>(users) 用于包装分页结果。