mybatis-plus中分页查询/在某一时间区间/并判断接收参数 需要判断前端接收参数是否为空,查询某一个时间区段并需要分页
Page abnormalDTOPage = new Page<>(abnormalPO.getCurrentPage(), abnormalPO.getPageSize(),false);
List<返回定义的实体对象类> resultList = new ArrayList<>();
LambdaQueryWrapper wrapper = new QueryWrapper<数据库对应的实体类>()
.lambda()
.between(StringUtils.isNoneBlank(接收的参数),数据库对应实体类::get实体类对应的字段,接收的参数1,接收的参数2)
.eq(StringUtils.isNoneBlank(abnormalPO.getType()),AbnormalDTO::getAlertType,abnormalPO.getType());
其中:
Page abnormalDTOPage = new Page<>(abnormalPO.getCurrentPage(), abnormalPO.getPageSize(),false);
为创建mybatis-plus中的分页对象
第一参数:当前页码数
第二参数:每页显示条数
第三参数:可加可不加,true/false 默认值:true
LambdaQueryWrapper wrapper = new QueryWrapper<数据库对应的实体类>().lambda()
为mybatis-plus中的创建查询条件语法,而后面的lambda()则是为了后面参数可以使用lambda表达式的作用;
between(StringUtils.isNoneBlank(接收的参数),数据库对应实体类::实体类对应的字段,接收的参数1,接收的参数2)
这个就为查询条件 between 表示在某一个区间进行查询(具体参考sql语句中的between and 函数)
而StringUtils.isNoneBlank(参数)则是判断 这个参数是不是null或者是否是空串.
解释:如果这个参数为空那么sql语句中不会添加这个条件,当不为空的时候才会添加;
eq(StringUtils.isNoneBlank(abnormalPO.getType()),AbnormalDTO::getAlertType,abnormalPO.getType());
eq参考sql语句中的 字段 = 参数 形式;
Page pageList = this.page(abnormalDTOPage, wrapper);
List queryList= pageList.getRecords();
调用mybatis-plus中的分页方法 this.page(创建的分页对象,查询条件语句对象)
注意:此时返回的只有分页后的数据,并不是全部数据,将返回后的数据放置到 实体类对象的集合中 为实体类对象中的属性赋值
// 返回的数据类型为:mybatis-plus中规定的类型 Page<返回参数实体类>
Page result = new Page<>();
// 将返回的分页数据放置到 Page类型的Records属性中(源码中是一个List)
result.setRecords(resultList);
// 传递的当前页码数
result.setCurrent(abnormalPO.getCurrentPage());
// 传递的每页显示条数
result.setSize(abnormalPO.getPageSize());
// 总条数 可以在封装返回参数之前 通过 Integer total = this.list(wrapper).size();方法进行总条数获取
result.setTotal(total);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)