分页查询(MyBatis)
2025年12月26日大约 1 分钟
分页查询(MyBatis)
- 请求参数: 页码、每页记录数
- 响应结果: 总记录数、结果列表
分页查询(不带条件)
提示
- 这里主要了解一下实现思路,实际可以使用PageHelper等分页插件来简化分页查询的实现。
分页SQL语句
- 查询分页数据(结果列表)——SQL语句:
SELECT * FROM table_name LIMIT 起始索引, 每页记录数;起始索引:起始索引 = (页码 - 1) * 每页记录数每页记录数:查询返回的记录数量- 获取总记录数——SQL语句:
SELECT COUNT(*) FROM table_name;Controller层
- 参数注解:
@RequestParam注解用于设定参数的默认值
@GetMapping("/items")
public Result getItemsPage(
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer pageSize) {
// 调用Service层方法,传入页码和每页记录数
PageResult<Item> pageResult = itemService.getItemsPage(page, pageSize);
return Result.success(pageResult);
}PageHelper分页插件
- 引入依赖:略
Service层
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
public PageResult<Item> getItemsPage(Integer page, Integer pageSize) {
// 设置分页参数
PageHelper.startPage(page, pageSize);
// 执行查询
List<Item> itemList = itemMapper.selectAllItems();
// 获取分页信息
Page<Item> page = (Page<Item>) itemList
}Mapper层
public interface ItemMapper {
@Select("SELECT * FROM items")
List<Item> selectAllItems();
}提示
根据上面可以看到,Mapper层只需要查询所有数据即可,分页插件会自动处理分页逻辑。
分页查询(带条件)
- 在分页查询的基础上,增加查询条件参数
- 条件查询需要使用动态SQL