MyBatisPlus分页
1. 添加分页插件
@Configuration
public class MybatisPlusConfig {
/**
* 分页插件
* @return
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
2. 使用
先定义PageParam
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageParam {
private int page = 1;
private int pageSize = 10;
}
2.1 使用mapper分页
@Autowired
private DeptMapper deptMapper;
@Override
public Result getDeptList(PageParam pageParam) {
Page<Dept> page = new Page<Dept>(pageParam.getPage(), pageParam.getPageSize());
deptMapper.selectPage(page, null);
return Result.success(page);
}
2.2 使用service分页
@Autowired
private DeptServiceImpl deptService;
@PostMapping("list")
public Result deptPage(@RequestBody PageParam pageParam) {
Page<Dept> page = new Page<>(pageParam.getPage(), pageParam.getPageSize());
return Result.success(deptService.page(page));
}
2.3 自定义分页
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.colzry.oasystemserver.mapper.EmployeeMapper">
<sql id="empVo">
${empTable}.id, emp_no, emp_name, emp_gender, emp_entry_time, dept_name
</sql>
<select id="queryBaseEmpPage" resultType="com.colzry.oasystemserver.vo.EmployeeVO">
select
<include refid="empVo">
<property name="empTable" value="oa_employee"/>
</include>
from oa_employee
left join oa_dept on oa_employee.emp_dept_id = oa_dept.id
</select>
<select id="queryBaseEmpPageByDept" resultType="com.colzry.oasystemserver.vo.EmployeeVO">
select
<include refid="empVo">
<property name="empTable" value="oa_employee"/>
</include>
from oa_employee
left join oa_dept on oa_employee.emp_dept_id = oa_dept.id
where oa_dept.id = #{deptId}
</select>
</mapper>
@Mapper
@Repository
public interface EmployeeMapper extends BaseMapper<Employee> {
IPage<EmployeeVO> queryBaseEmpPage(IPage<EmployeeVO> page);
IPage<EmployeeVO> queryBaseEmpPageByDept(IPage<EmployeeVO> page,@Param("deptId") Long deptId);
}
@Autowired
private EmployeeMapper employeeMapper;
@Override
public Result getBaseEmpList(PageParam pageParam) {
Page<EmployeeVO> page = new Page<>(pageParam.getPage(), pageParam.getPageSize());
IPage<EmployeeVO> empPage = employeeMapper.queryBaseEmpPage(page);
return Result.success(empPage);
}
@Override
public Result getEmpListByDept(PageParam pageParam, Long deptId) {
Page<EmployeeVO> page = new Page<>(pageParam.getPage(), pageParam.getPageSize());
IPage<EmployeeVO> employeeVOPage = employeeMapper.queryBaseEmpPageByDept(page, deptId);
return Result.success(employeeVOPage);
}