MyBatis分页插件的原理是通过拦截SQL语句,然后在查询数据库之前对SQL语句进行修改,添加分页相关的参数,例如limit和offset,来实现分页功能。具体步骤如下:
- 拦截SQL语句:MyBatis分页插件会拦截所有的查询SQL语句,包括select、update、delete等操作。
- 解析SQL语句:插件会解析SQL语句,获取其中的查询条件、排序规则等信息。
- 修改SQL语句:根据分页的要求,插件会修改原始的SQL语句,添加分页相关的参数,例如limit和offset。
- 执行查询:修改后的SQL语句会被传递给数据库进行查询操作,获取符合分页条件的数据。
- 返回结果:数据库返回查询结果后,插件会再次对结果进行处理,提取出符合分页条件的数据,返回给用户。
通过以上步骤,MyBatis分页插件能够在不修改原始SQL语句的情况下,实现对查询结果的分页处理,为用户提供了方便和灵活的分页功能。
1、在pom.xml引入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.2</version>
</dependency>
2、EmpMapper
@Mapper public interface EmpMapper {
//获取当前页的结果列表
@Select("select * from emp")
public List<Emp> page(Integer start, Integer pageSize);
}
3、EmpServiceImpl
@Override
public PageBean page(Integer page, Integer pageSize) {
// 设置分页参数
PageHelper.startPage(page, pageSize);
// 执行分页查询
List<Emp> empList = empMapper.list(name,gender,begin,end);
// 获取分页结果
Page<Emp> p = (Page<Emp>) empList;
//封装PageBean
PageBean pageBean = new PageBean(p.getTotal(), p.getResult());
return pageBean;
}