在pom.xml中导入依赖
com.github.pagehelper pagehelper-spring-boot-starter 1.4.1
如果版本不对的话会出现循环依赖的问题,貌似版本与使用的SpringBoot版本有关。
添加配置文件 我这里使用application.yml添加配置文件,相关参数设置说明:
#分页pageHelper #·helper-dialect: # 配置使用哪种数据库语言,不配置的话pageHelper也会自动检测 #·reasonable: # 配置分页参数合理化功能,默认是false。 #启用合理化时,如果pageNum<1会查询第一页,如果pageNum>总页数会查询最后一页; # 禁用合理化时,如果pageNum<1或pageNum>总页数会返回空数据。 #·params: # 为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值; 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值, # 默认值为 pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。 #·support-methods-arguments: # 支持通过Mapper接口参数来传递分页参数,默认值false,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取 值,查找到合适的值时就会自动分页。 pagehelper: helper-dialect: mysql reasonable: true support-methods-arguments: true编写代码 在mapper层中编写查询数据库表的方法,返回List
SQL语句采用注解的方式编写:
@Select( "SELECT t1.*,t2.`GROUP_NAME` FROM device t1 LEFT JOIN group_device t2 ON t1.`GROUP_ID` = t2.`ID`" )
List queryDevice();
在Service层与Impl中也编写相关方法:
service:PageInfoImpl中编写分页方法实现,直接调用mapper层的方法执行数据库操作:findAllDevicesByPageS(Integer pageNum, Integer pageSize);
pageNum表示当前页数,pageSize表示每页数据量,返回分页信息。
@Autowired
private DevicesInfoDao devicesInfoDao;
@Override
public PageInfo findAllDevicesByPageS(Integer pageNum , Integer pageSize) {
PageHelper.startPage( pageNum,pageSize );
List lists = devicesInfoDao.queryDevice();
PageInfo pageInfo = new PageInfo(lists);
return pageInfo;
}
在Controller层中与前端实现交互:
使用自定义的返回数据格式。
@Autowired
private DevicesInfoDao devicesInfoDao;
@GetMapping("/queryDevicesInPage")
ResultModel queryDevicesInPage(Integer pageNum,Integer pageSize){
PageInfo queryResult = devicesInfoService.findAllDevicesByPageS(pageNum,pageSize);
return new ResultModel( ResultCode.CODE_00000.getCode(),"查询成功",queryResult );
}
查看结果:
每个参数的含义:
每个参数代表的意思 示例:
pageNum=1,当前页码
pageSize=1,每页个数
size=1,当前页个数
startRow=1,由第几条开始
endRow=1,到第几条结束
total=3,总条数
pages=3,总页数
list= XXXX 查出出来的数据集合
prePage=0,上一页
nextPage=2,下一页
isFirstPage=true,是否为首页
isLastPage=false,是否为尾页
hasPreviousPage=false,是否有上一页
hasNextPage=true,是否有下一页
navigatePages=8,每页显示的页码个数
navigateFirstPage=1,首页
navigateLastPage=3,尾页
navigatepageNums=[1, 2, 3]}页码数



