在使用Mybatis-Plus框架进行查询时, 碰到了需要查询最大值的情况. 但是截止本文章撰写前, Mybatis-Plus并没有提供直接的查询数据最大值的函数. 本篇文章就来记录下如何实现.

前置条件

若要顺利阅读本篇文章, 需要你具备如下条件:

  • 掌握Spring框架
  • 掌握Mybatis
  • 掌握Mybatis-Plus的基本使用
  • 掌握SQL语句
一定要注意环境的差异, 考虑不兼容的可能性; 并且具备以上条件. 否则阅读本篇博客可能会给你带来困扰.

实战开始

我们进行普通查询的时候, 需要用到以下语句:

    xxxMapper.selectOne(QueryWrapper(...));

我们只需要分别添加排序(orderByDesc)和取第1个(limit 1)就可拿到最大值:

    xxxMapper.selectOne(QueryWrapper(...).orderByDesc("排序字段名").last("limit 1"));

拿到最小值只需改为正序排列:

    xxxMapper.selectOne(QueryWrapper(...).orderByAsc("排序字段名").last("limit 1"));

搞定.

结语

本文的方法虽然实现了我们的目标. 但是仅为代码美观. 实际上这样的查询效率可能不高. 生产环境的项目慎用.