SpringBoot---MyBatis (pagehelper 分页插件使用案例)
1.pom 文件
<!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency>
2.application-dev.properties #================ mybatis pagehelper ==============# pagehelper.helper-dialect=mysql pagehelper.reasonable=true pagehelper.support-methods-arguments=true pagehelper.params=count=countSql
3.分页查询返回实体类
import com.github.pagehelper.PageInfo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.io.Serializable; import java.util.List; /** * 分页查询返回实体类 * * @author lhh * @Date 2019/10/26 20:46 */ @Data @NoArgsConstructor @AllArgsConstructor public class PageModel<T> implements Serializable{ /** * 当页数据 */ private List<T> list; /** * 数据总条数 */ private Long totalNum; public PageModel(List<T> list, PageInfo pageInfo){ this.list=list; this.totalNum=pageInfo.getTotal(); } }
4.分页排序入参
import lombok.Data; /** * 分页排序入参 * * @author lhh * @Date 2019/10/26 20:58 */ @Data public class PageVo { /** * 页码,从1开始 */ private int page = 1; /** * 页面大小 */ private int size = 10; }
5.控制层
import com.alibaba.fastjson.JSON; import com.lhh.springboot.config.mybatis.PageVo; import com.lhh.springboot.oauth.service.SysUserService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author lhh * @Date 2019/10/26 15:29 */ @RestController @RequestMapping("/sys_user") public class SysUserController { @Autowired private SysUserService sysUserService; @ApiOperation(value = "测试mybatis分页插件",method = RequestMethod.POST) @RequestMapping("/findByPage") public String findByPage(PageVo vo) { return JSON.toJSONString(sysUserService.findByPage(vo)); } }
6.server层
import com.lhh.springboot.config.mybatis.PageModel; import com.lhh.springboot.config.mybatis.PageVo; import com.lhh.springboot.oauth.pojo.SysUser; /** * @author lhh * @Date 2019/10/26 15:30 */ public interface SysUserService { /** * 分页查询 * * @param vo 分页入参 * @return */ PageModel<SysUser> findByPage(PageVo vo); }
7.serviceImpl 实现层
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.lhh.springboot.config.mybatis.PageModel; import com.lhh.springboot.config.mybatis.PageVo; import com.lhh.springboot.oauth.dao.SysUserMapper; import com.lhh.springboot.oauth.pojo.SysUser; import com.lhh.springboot.oauth.service.SysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * @author lhh * @Date 2019/10/26 15:31 */ @Service public class SysUserServiceImpl implements SysUserService { @Autowired private SysUserMapper sysUserMapper; /** * 分页查询 * * @param vo 分页入参 * @return */ @Override public PageModel<SysUser> findByPage(PageVo vo) { PageHelper.startPage(vo.getPage(), vo.getSize()); List<SysUser> list = sysUserMapper.findPage(); PageInfo<SysUser> pageInfo = new PageInfo<>(list); return new PageModel<>(list, pageInfo); } }
8.使用swagger2 测试