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

方法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

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

方法2:自己写

优点:对于初学者来说,可以了解分页查询内部的原理

缺点:比较麻烦

为什么用map

因为前面的findAll是查询出一些数据,直接用List 这种接收就可以了

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

但是 分页查询,需要得到的结果是下图这种json数据

需要有 一个total 一个data,只用List是不行的

mybatis实现分页查询(两种方式:1pageHelper插件 2手写)_第3张图片

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路径









url

http://localhost:8081/user/page?pageSize=5&pageNum=1

你可能感兴趣的:(SpringBoot,java,spring,boot,mybatis)