SpringBoot集成helper分页
service层使用,当使用helper之后,会在mybatis拦截器拦截到最近的查询,将分页需要的数据拼接过去
不用自己操作
唯一要注意的是返回需要用Page接收,这个也是helper的类
它的泛型就是分页需要返回的泛型
<properties>
<mybatis.spring>2.2.0</mybatis.spring>
<lombok>1.18.20</lombok>
<fastjson>1.2.76</fastjson>
<commons.lang>2.6</commons.lang>
<druid>1.2.1</druid>
<pagehelper>1.3.0</pagehelper>
<aliyun.sdk.oss>3.10.2</aliyun.sdk.oss>
<knife4j>3.0.2</knife4j>
<aspectj>1.9.4</aspectj>
<jjwt>0.9.1</jjwt>
<jaxb-api>2.3.1</jaxb-api>
<poi>3.16</poi>
</properties>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper}</version>
</dependency>
controller
/**
* 员工分页查询
*
* @param employeePageQueryDTO 员工页面查询 DTO
* @return {@link Result}<{@link PageResult}>
*/
@GetMapping("/page")
@ApiOperation("员工分页查询")
//前端传来的三个参数都在这个类里面,springmvc会直接封装好
public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO){
log.info("员工分页查询:参数为{}",employeePageQueryDTO);
PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO);
return Result.success(pageResult);
}
service
/**
* 分页查询
*
* @param employeePageQueryDTO 员工页面查询 DTO
* @return {@link PageResult}
*/
PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
/**
* 分页查询
*
* @param employeePageQueryDTO 员工页面查询 DTO
* @return {@link PageResult}
*/
@Override
public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {
//开始分页查询(使用pageHelper)
PageHelper.startPage(employeePageQueryDTO.getPage(),employeePageQueryDTO.getPageSize());
Page<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO);
long total = page.getTotal();
List<Employee> records = page.getResult();
return new PageResult(total,records);
}
mapper
/**
* 分页查询
*
* @param employeePageQueryDTO 员工页面查询 DTO
* @return {@link Page}<{@link Employee}>
*/
Page<Employee> pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
<?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.sky.mapper.EmployeeMapper">
<select id="pageQuery" resultType="com.sky.entity.Employee">
select * from employee
<where>
<if test="name != null and name != ''">
and name like concat('%',#{name},'%')
</if>
</where>
order by create_time desc
</select>
</mapper>