配置类
package com.xxxx.server.config;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
//在查询时会拦截sql语句并把分页语句加上
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
}
实体封装
package com.xxxx.server.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class RespPageBean {
private Long total;
private List> data;
}
controller
@GetMapping("/")
public RespPageBean getEmployee(@RequestParam(defaultValue = "1") Integer currentPage,
@RequestParam(defaultValue = "10") Integer size,
Employee employee,
LocalDate[] beginDateScope){
return employeeService.getEmployeeByPage(currentPage,size,employee,beginDateScope);
}
service
@Override
public RespPageBean getEmployeeByPage(Integer currentPage, Integer size, Employee employee,
LocalDate[] beginDateScope) {
//开启分页 currentPage:当前页 size:每页最大条数
Page page = new Page<>(currentPage, size);
IPage employeeByPage = employeeMapper.getEmployeeByPage(page, employee, beginDateScope);
RespPageBean respPageBean = new RespPageBean(employeeByPage.getTotal(), employeeByPage.getRecords());
return respPageBean;
}
mapper
IPagegetEmployeeByPage(Page page, @Param("employee") Employee employee, @Param("beginDateScope") LocalDate[] beginDateScope);
sql语句
SELECT e.*, n.id AS nid, n.`name` AS nname, p.id AS pid, p.`name` AS pname, d.id AS did, d.`name` AS dname, j.id AS jid, j.`name` AS jname, pos.id AS posid, pos.`name` AS posname FROM t_employee e, t_nation n, t_politics_status p, t_department d, t_joblevel j, t_position pos WHERe e.nationId = n.id AND e.politicId = p.id AND e.departmentId = d.id AND e.jobLevelId = j.id AND e.posId = pos.id AND e.`name` LIKE CONCAt( '%', #{employee.name}, '%' ) AND e.politicId = #{employee.politicId} AND e.nationId = #{employee.nationId} AND e.jobLevelId = #{employee.jobLevelId} AND e.posId = #{employee.posId} AND e.engageForm = #{employee.engageForm} AND e.departmentId = #{employee.departmentId} AND e.beginDate BETWEEN #{beginDateScope[0]} AND #{beginDateScope[1]} ORDER BY e.id



