mybatis实现分页操作
首先导入pagehelper插件
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.4.7</version> </dependency>
然后封装一个PageBean
package com.oxyx.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; @Data @NoArgsConstructor @AllArgsConstructor public class PageBean { private Long total; private List<Emp> pageSize; }
接下来就是mapper接口直接正常查询就行
package com.oxyx.mapper; import com.oxyx.pojo.Emp; import com.oxyx.pojo.PageBean; import java.util.List; public interface EmpMapper { List<Emp> page(); }
当然别忘了mapperXML文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "https://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.oxyx.mapper.EmpMapper"> <!-- List<Emp> page(Integer page,Integer pageSize);--> <select id="page" resultType="emp" > select * from emp </select> </mapper>
重点来了现在service声明一个接口,然后编写实现类
package com.oxyx.service; import com.oxyx.pojo.PageBean; public interface EmpService { PageBean page(Integer page, Integer pageSize); }
package com.oxyx.service.impl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.oxyx.mapper.EmpMapper; import com.oxyx.pojo.Emp; import com.oxyx.pojo.PageBean; import com.oxyx.service.EmpService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class EmpServiceImpl implements EmpService { @Autowired private EmpMapper empMapper; @Override public PageBean page(Integer page, Integer pageSize) { PageHelper.startPage(page,pageSize); List<Emp> empList = empMapper.page(); Page<Emp> p = (Page<Emp>) empList; PageBean pageBean = new PageBean(p.getTotal(),p.getResult()); return pageBean; } }
最后就是controller的编写 没啥好说的
package com.oxyx.controller;
import com.oxyx.pojo.PageBean;
import com.oxyx.service.EmpService;
import com.oxyx.util.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("emp")
@Slf4j
public class EmpController {
@Autowired
private EmpService empService;
@GetMapping("all")
public Result queryPage(@RequestParam(defaultValue = "1",required = false) Integer page,
@RequestParam(defaultValue = "10",required = false) Integer pageSize) {
PageBean pageBean = empService.page(page,pageSize);
log.info("pageBean={}",pageBean);
return Result.success(pageBean);
}
}