一、安装依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.6</version>
</dependency>
二、代码定义
分页对象类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageBean implements Serializable {
// 总记录数
private Long total;
// 返回参数列表
private List rows;
}
mapper层
直接查询所有数据即可,剩下的交给分页器
@Mapper
public interface EmpMapper {
// 查询部门信息
@Select("select * from emp")
List<Emp> list();
}
业务逻辑层
PageHelper.startPage(page, pageSize);
是 MyBatis 的一个分页插件(PageHelper)提供的方法调用,用于在数据库查询中实现分页功能。这个方法的作用是告诉 PageHelper 开始对接下来的查询进行分页处理。
具体来说,这个方法做了以下几件事情:
-
设置分页参数:它会根据传入的
page
和pageSize
参数,自动计算出数据库查询的起始行号(offset)和每页的记录数(limit)。 -
重写查询语句:在底层,PageHelper 会拦截你的查询语句,自动在原有的查询语句上添加分页参数,从而实现数据库的分页查询。这样,你就无需手动编写复杂的分页查询语句。
-
返回分页结果:分页查询完成后,PageHelper 会将查询结果封装成一个
Page
对象,包含了分页信息和查询结果列表。
@Autowired
EmpMapper empMapper;
@Override
public PageBean page(Integer page, Integer pageSize) {
// 1、设置分页参数
PageHelper.startPage(page, pageSize);
// 2、执行分页查询语句
List<Emp> empList = empMapper.list();
// 3、获取分页结果
Page<Emp> p = (Page<Emp>) empList;
// 4、封装pageBean对象,注意对象需要序列化
// p.getTotal() 获取结果条数,p.getResult()获取查询结果
PageBean pageBean = new PageBean(p.getTotal(), p.getResult());
return pageBean;
}
控制层
@ResponseBody
@GetMapping
public Result page( @RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer pageSize){
// 传入页码和每页的条数
PageBean pageBean = empService.page(page,pageSize);
return Result.success(pageBean);
}
三、注意实体类需要序列化
依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
实体类
import com.fasterxml.jackson.annotation.JsonAutoDetect;
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class Emp {
// ...
}
如果不序列化,可能产生以下错误:文章来源:https://www.toymoban.com/news/detail-633276.html
No serializer found for class com.demo.tliaswebmanagement.pojo.Emp and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)文章来源地址https://www.toymoban.com/news/detail-633276.html
到了这里,关于springboot-mybatis的分页查询的接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!