mybatis实现分页查询(两种方式:1pageHelper插件 2手写) 您所在的位置:网站首页 pagehelper的分页 mybatis实现分页查询(两种方式:1pageHelper插件 2手写)

mybatis实现分页查询(两种方式:1pageHelper插件 2手写)

2022-12-21 02:30| 来源: 网络整理| 查看: 265

方法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: mysql   reasonable: true # 修改默认值

3.写方法

在UserService里面

//分页查询 List findPage(Integer pageNo,Integer pageSize);

在UserServiceImpl里面

//分页查询 @Override public 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层

//分页查询 @Override public List selectPage(Integer pageNum, Integer pageSize) {     pageNum = (pageNum - 1) * pageSize;     return userMapper.selectPage(pageNum,pageSize); } //统计 @Override public 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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有