在Spring Boot中使用MyBatis实现分页查询,可以通过插件PageHelper来简化操作。以下是具体的实现步骤:
- 添加PageHelper依赖
在pom.xml
文件中添加PageHelper的依赖:
com.github.pagehelper pagehelper-spring-boot-starter 5.2.0
- 配置PageHelper
在application.properties
或application.yml
文件中添加PageHelper的配置:
# application.properties pagehelper.helper-dialect=mysql pagehelper.reasonable=true pagehelper.support-methods-arguments=true pagehelper.params=count=countSql
或者
# application.yml pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true params: count=countSql
- 创建分页查询接口
在Mapper接口中,添加一个分页查询的方法:
public interface UserMapper { ListfindAllWithPagination(RowBounds rowBounds); }
- 实现分页查询接口
在对应的XML文件中,编写分页查询的SQL语句:
SELECT * FROM user
- 在Service中使用分页查询
@Service public class UserService { @Autowired private UserMapper userMapper; public PageInfofindAllWithPagination(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); List users = userMapper.findAllWithPagination(new RowBounds()); return new PageInfo<>(users); } }
- 在Controller中调用Service
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/pagination") public ResponseEntity> getUsersWithPagination(@RequestParam("pageNum") int pageNum, @RequestParam("pageSize") int pageSize) { PageInfo pageInfo = userService.findAllWithPagination(pageNum, pageSize); return ResponseEntity.ok(pageInfo); } }
现在你可以通过访问/user/pagination?pageNum=1&pageSize=10
来进行分页查询。其中pageNum
表示页码,pageSize
表示每页显示的记录数。