作者: | 来源:互联网 | 2023-07-20 19:05
方法1:整合pageHelper分页插件 优点:快捷,只需要你有一个查询全部数据的方法即可
缺点:对于初学者来说,不了解内部的原理
前提:需要先实现一个最简单的 查询全部数据的方法,不会的可以先去搭建一个项目
SpringBoot 整合mybatis、mybatis日志、并测试findAll查询数据库方法:
https://blog.csdn.net/KangYouWei6/article/details/127021894
1.添加依赖
添加到pom.xml中的 dependencies 标签中
刷新maven
com.github.pagehelper pagehelper-spring-boot-starter 1.3.0
2.配置 => properties / yml
注意yml的语法,开头那个必须顶格
pagehelper:helperDialect: mysqlreasonable: true # 修改默认值
3.写方法
在UserService里面
//分页查询List findPage(Integer pageNo,Integer pageSize);
在UserServiceImpl里面
//分页查询@Overridepublic List findPage(Integer pageNo, Integer pageSize) {PageHelper.startPage(pageNo,pageSize);return userMapper.list();//这里的list方法是查询全部数据的方法}
在UserController里面
//分页查询@RequestMapping("findPage")public List findPage(int pageNo,Integer pageSize){return userService.findPage(pageNo,pageSize);}
4.测试
在数据库中多添加几条数据
在启动类(HelloApplication)里面启动
在网页或者PostMan上输入
localhost:8081/user/findPage?pageNo=1&pageSize=2
方法2:自己写 优点:对于初学者来说,可以了解分页查询内部的原理
缺点:比较麻烦
为什么用map
因为前面的findAll是查询出一些数据,直接用List 这种接收就可以了
但是 分页查询,需要得到的结果是下图这种json数据
需要有 一个total 一个data,只用List是不行的
mapper层
List selectPage(Integer pageNum, Integer pageSize);//分页查询 Integer countAll ();//统计
service层
List selectPage(Integer pageNum, Integer pageSize);//分页查询Integer countAll ();//统计
impl层
//分页查询@Overridepublic List selectPage(Integer pageNum, Integer pageSize) {pageNum = (pageNum - 1) * pageSize;return userMapper.selectPage(pageNum,pageSize);}//统计@Overridepublic Integer countAll() {return userMapper.countAll();}
controller层
/*** 分页查询* @param pageNum* @param pageSize* @return*/@GetMapping("/page")public Map findPage(@RequestParam int pageNum, @RequestParam int pageSize){//分页查询的数据放到 data 里面List data =userService.selectPage(pageNum,pageSize);//统计的数据放到 total 里面Integer total = userService.countAll();Map res = new HashMap<>();res.put("data",data);res.put("total",total);return res;}
xml层
注意修改 resultType里面的user路径
select * from sys_user limit #{pageNum}, #{pageSize} select count(*) from sys_user
url http://localhost:8081/user/page?pageSize=5&pageNum=1