MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 基础上只做增强不做改变,为简化开发、提高效率而生。它提供了强大的分页功能,非常方便进行分页查询。下面是一个具体的例子,展示了如何使用 MyBatis-Plus 进行分页查询:
首先,确保你的项目中已经添加了 MyBatis-Plus 的依赖。如果还没有,可以在 pom.xml
文件中添加如下依赖(以 Maven 为例):
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>你的MyBatis-Plus版本</version>
</dependency>
在你的 Spring Boot 应用中配置 MyBatis-Plus。这通常包括配置数据源、事务管理器等。其中最重要的是配置分页插件 PaginationInterceptor
。
@Configuration
@MapperScan("com.yourpackage.mapper") // 指定扫描的mapper接口所在的包
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
创建一个 Mapper 接口,继承 BaseMapper
,这里以 UserMapper
为例:
@Mapper
public interface UserMapper extends BaseMapper<User> {
// 这里可以添加一些自定义的方法,但对于分页查询来说不是必需的
}
在你的服务层或者控制器层中,可以这样使用分页查询:
@Autowired
private UserMapper userMapper;
public IPage<User> selectUserPage(int page, int size) {
// 创建分页对象
Page<User> pageInfo = new Page<>(page, size);
// 执行分页查询
IPage<User> userPage = userMapper.selectPage(pageInfo, null);
return userPage;
}
在上述代码中,selectPage
方法是 MyBatis-Plus 提供的用于分页查询的方法,第一个参数是一个 Page
对象,它包含了分页信息(当前页码和每页显示的记录数),第二个参数是查询条件(这里传入 null
表示没有条件,查询全部数据)。
在你的 Controller 中调用服务层方法:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/list")
public IPage<User> list(@RequestParam int page, @RequestParam int size) {
return userService.selectUserPage(page, size);
}
}
这个 Controller 提供了一个分页查询用户的接口。客户端可以通过传递 page
(页码)和 size
(每页显示的记录数)来获取分页数据。
以上就是使用 MyBatis-Plus 进行分页查询的一个简单示例。MyBatis-Plus 通过提供 PaginationInterceptor
和 selectPage
等工具,大大简化了分页查询的实现,让开发者能够更加专注于业务逻辑的实现。