业务逻辑
前端传入两个参数,当前页码page和页码大小pageSize。后端返回两个参数总条数total和当前页的所有数据,可以封装成一个Bean。
@Data @NoArgsConstructor @AllArgsConstructor public class pageBean { private Long total; private List rows; }
首先引入maven依赖
<!--PageHelper分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.2</version> </dependency>
controller层
@GetMapping public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer pageSize, String name, Short gender, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate begin, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate end){ log.info("分页查询, 参数: {},{},{},{},{},{}",page,pageSize,name,gender,begin,end); //调用service分页查询 pageBean pageBean = empService.page(page,pageSize,name,gender,begin,end); return Result.success(pageBean); }
service层
@Override public pageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) { //1.设置分页参数 PageHelper.startPage(page,pageSize); //2.执行查询 List<Emp> list = empMapper.list(name,gender,begin,end); Page<Emp> p= (Page<Emp>) list; //3.封装pageBean对象 pageBean pageBean = new pageBean(p.getTotal(), p.getResult()); return pageBean; }
mapper层
@Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time, update_time) " + "values(#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime}) ") void insert(Emp emp);