mybatis-plus中查询使用

mybatis-plus中查询使用,第1张


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);

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/991578.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存