MybatisPlus中分页的坑

MybatisPlus中分页的坑

MybatisPlus在分页方面了提供了一个IPage的接收值方便我们返回分页参数
具体格式为:

    {
    
    ...},					  # 返回的数据
    "total": 81,			  # 总数据量
    "size": 10, 			  # 每页多少数据
    "current": 1, 			  # 当前页
    "orders": [],  			  # 获取排序信息,排序的字段和正反序
    "optimizeCountSql": true, # 自动优化
    "searchCount": true, 	  # 进行 count 查询
    "countId": null,		  # 老分页插件不支持
    "maxLimit": null,		  # 最大每页分页数限制
    "pages": 9				  # 总页数
  

先看看我遇到的问题
在这里插入图片描述
在这里插入图片描述
通过这两张图可见在执行了后面一条的sql后,上一条的数据直接清空,后面发现是page的问题,两个sql没法共用一个page参数导致的前一条的数据直接清空了

解决方案

1、每个sql使用各自的page

#例如第一个sql
Page<SysAppRoleAuth> page = new Page<>(pageNo, pageSize);
IPage<SysAppRoleAuth> roleAuthList = appRoleAuthMapper.selectByRoleId(page,id);

#第二个sql
Page<SysAppRoleAuth> page1 = new Page<>(pageNo, pageSize);
IPage<SysAppRoleAuth> list = appRoleAuthMapper.selectAuthModule(page1,id);

2、将其中一个sql返回其他的形式,例如list或者set

 //判断角色是否存在
        Page<SysAppRoleAuth> page = new Page<>(pageNo, pageSize);
        List<SysAppRoleAuth> roleAuthList = appRoleAuthMapper.selectByRoleId(id);
        if (roleAuthList.size() == 0) {
    
    
            return Result.error("角色不存在");
        }
        //查询有权限的模块
        IPage<SysAppRoleAuth> list = appRoleAuthMapper.selectAuthModule(page,id);

猜你喜欢

转载自blog.csdn.net/weixin_52796198/article/details/131222918