MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]

这篇具有很好参考价值的文章主要介绍了MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客 

Mybatis-Plus+SpringBoot结合运用_心态还需努力呀的博客-CSDN博客
MyBaits-Plus中@TableField和@TableId用法_心态还需努力呀的博客-CSDN博客

MyBatis-Plus中的更新操作(通过id更新和条件更新)_心态还需努力呀的博客-CSDN博客

MyBatis-Plus删除操作知识点总结_心态还需努力呀的博客-CSDN博客_mybatis-plus删除

MyBatis-Plus配置之基础配置(SpringBoot)_心态还需努力呀的博客-CSDN博客

注:上述所列只是部分文章,本系列还在更新中~感兴趣可看专栏哦~


文章目录

目录

系列文章目录

文章目录

前言

1.1 like

1.2 notLike

1.3 likeLeft

1.4 likeRight

二、排序查询

2.1 orderBy

2.2 orderByAsc

2.3 orderByDesc

三、逻辑查询

3.1 and

3.2 or

四、指定字段字段

总结


前言

MyBatis-Plus中的各种常用的方法已经总结完了,基本上能完成单表中的大部分操作。还有一小部分操作就是用户的搜索,这里就会使用到模糊查询去展示给用户搜索到的内容。内容也可排序返回给展示到前端页面,也会用到逻辑查询和只查询到指定字段显示到页面。应对这种需求,MP也给我们提供了很多的方法,下面我们一一用这些常用的方法写案例带大家理解~

首先大家要明白条件构造器就是我们的QueryWrapper。今天我们学的就是QueryWrapper下提供的条件构造。


一、模糊查询

模糊查询提供了四个方法:

1.1 like

  • LIKE '%值%'
  • 例: like("name", "王")--->name like '%王%'

1.2 notLike

  • NOT LIKE '%值%'
  • 例: notLike("name", "王")--->name not like '%王%'

1.3 likeLeft

  • LIKE '%值'
  • 例: likeLeft("name", "王")--->name like '%王'

1.4 likeRight

  • LIKE '值%'
  • 例: likeRight("name", "王")--->name like '王%'

我们以第四个likeRight方法做测试:

编写testLikeRight()测试方法,查询所有用户名以‘哈’开头的用户信息。代码编写如下:

//模糊查询  like----‘%值%’、notlike ----NOT LIKE'%值%'、likeLeft-----'%值'、likeRight-----'值%'
    @Test
    public void testLikeRight(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        //用户名以‘哈’开头的用户
        wrapper.likeRight("user_name","哈");
        List<User> users = userMapper.selectList(wrapper);
        for (User user : users) {
            System.out.println(user);
        }
    }

通过查看效果图(下图所示),生成的sql代码条件是user_name LIKE,后面是‘哈%‘。执行结果也可看出查询到的用户都是以‘哈‘开头的。测试成功~

MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]

 

二、排序查询

2.1 orderBy

  • 排序:ORDER BY 字段, ...
  • 例: orderBy(true, true, "id", "name")--->order by id ASC,name ASC

2.2 orderByAsc

  • 排序:ORDER BY 字段, ... ASC
  • 例: orderByAsc("id", "name")--->order by id ASC,name ASC

注:对比orderBy和orderByAsc可发现orderBy方法默认就是升序排序。两者效果一样,但第二种可读性强一些。

2.3 orderByDesc

  • 排序:ORDER BY 字段, ... DESC
  • 例: orderByDesc("id", "name")--->order by id DESC,name DESC

我们以降序排序为例展开测试:

编写testOrderDesc()的测试方法,将所有用户以id降序排序输出用户信息。编写代码如下:

//排序查询
    //orderBy 默认升序、orderByAsc 升序、orderByDesc 降序
    @Test
    public void testOrderDesc(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        //以id降序为例
        wrapper.orderByDesc("user_id");
        List<User> users = userMapper.selectList(wrapper);
        for (User user : users) {
            System.out.println(user);
        }
    }

 通过查看效果图(下图所示),生成的sql代码通过user_id进行DESC降序排序。执行结果也可看出查询到的用户信息user_id也是从最大的开始显示,然后是第二大。。。测试成功~

MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]

 

三、逻辑查询

3.1 and

默认查询条件之间就是and,以前的测试用例中都展示过,这里就不在演示了。

3.2 or

注意事项:

主动调用or表示紧接着下一个方法不是用and连接!(不调用or则默认为使用and连接)

  • 例: eq("id",1).or().eq("name","老王")--->id = 1 or name = '老王'

下面我们就编写测试方法testOr()测试or的用法,我们来查询用户名为心态或者为李四的用户信息,代码如下:

//逻辑查询
    //or、and
    @Test
    public void testOr(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        //查询用户名为心态或者为李四的用户信息
        wrapper.eq("user_name","心态")
                .or()//或者
                .eq("user_name","李四");
        List<User> users = userMapper.selectList(wrapper);
        for (User user : users) {
            System.out.println(user);
        }
    }

执行上述代码,效果图如下。

可看到生成的sql中条件之间是以or连接的。执行出来两条用户信息,分别是李四的用户信息和心态的用户信息。说明测试成功~ 

MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]

 

四、指定字段字段

这里说的就是select的用法

  • 例: select("id", "name", "age")

编写测试方法testSelect(),我们查询用户名为心态信息,只显示用户名、邮箱。测试代码如下:

//指定字段查询
    //select
    @Test
    public void testSelect(){
        QueryWrapper<User> wrapper=new QueryWrapper<>();
        //查询用户名为心态信息,只显示用户名、邮箱
        wrapper.eq("user_name","心态")
                //只查询用户名、邮箱字段
                .select("user_name","user_email");
        List<User> users = userMapper.selectList(wrapper);
        for (User user : users) {
            System.out.println(user);
        }
    }

执行效果图如下:

可看到生成的sql代码查询的字段不是默认的全字段了,而是上述指定的用户名和邮箱字段。查询出的结果也是有这两个字段有值,其他的都是null。

MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]

 


 

总结

常用的条件构造器已经展示完了,还有一些不常用的大家如果想看可打开MP官网,在左边栏的条件构造器中查找要用的即可。但基本上我们大多数MP的用法也就这些,即可满足开发中大部分的需求。还有就是要写的sql难时,也可用MyBatis的方法在xml里写sql用自定义的方法。反正实现方法有很多,能用自带的就是比较方便快捷一些~文章来源地址https://www.toymoban.com/news/detail-462020.html

到了这里,关于MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MyBatis-Plus——条件构造器Wapper、QUeryWrapper、UpdateWrapper、LambdaQueryWrapper、LambdaUpdateWrapper(详解)

    目录 一、条件构造器简介 二、QueryWrapper组装查询条件 三、QueryWrapper组装排序条件 四、QueryWrapper组装删除条件 五、QueryWrapper实现修改功能 六、QueryWrapper条件的优先级 七、QueryWrapper组装select字句(查询指定字段) 八、QueryWrapper组装子查询 九、UpdateWrapper实现修改功能 十、Q

    2024年02月07日
    浏览(38)
  • 【MyBatis Plus】深入探索 MyBatis Plus 的条件构造器,自定义 SQL语句,Service 接口的实现

    在前文中,介绍了 MyBatis Plus 的一些基础功能,我们发现使用MyBatis Plus 可以非常简单的就实现对单表的增删改查操作。但是这些操作对应的 SQL 语句都非常简单,如果是面对一些复杂的 SQL 或者多表查询这样的情况,就需要我们自己来重新组织 SQL 语句了。 本文将重点探索 M

    2024年02月07日
    浏览(41)
  • MybatisPlus-CRUD,不带条件构造器的常用方法

    BaseMapper中封装好了增删改查的方法 后面直接调用就好了 测试类 ----------------------------------------------------------------- ServiceImpl中封装了方法(特别注意批量添加只有serviceImpl中有) 测试类

    2024年02月14日
    浏览(26)
  • Java中使用es条件构造器BoolQueryBuilder

    由于es在java中查询没法像mybatis那样方便,而且es的构造器使用也比较繁琐,理解不是很方便,所以写一篇文章来记录es构造器BoolQueryBuilder查询时各种条件的构造的正确姿势。 1.构造准备 2.条件构造 must可用filter代替,查询效率会更高,因为must会对结果进行_score评估 3.构造完成

    2024年02月11日
    浏览(43)
  • MyBatisPlus详解(二)条件构造器Wrapper、自定义SQL、Service接口

    MyBatisPlus详解系列文章: MyBatisPlus详解(一)项目搭建、@TableName、@TableId、@TableField注解与常见配置 2.1.1 Wrapper 在BaseMapper接口提供的相关方法中,除了以id作为where条件, 还支持更加复杂的where条件,即条件构造器Wrapper : Wrapper是条件构造器的抽象类,其下有很多默认实现,继承

    2024年04月25日
    浏览(38)
  • Mybatisplus 传参参数为自定义sql, 使用条件构造器作为参数

    1 pom依赖 2 mapper 接口文件 3 mapper 的xml配置文件 4 查询 5 测试,生成的两个sql语句如下 注意 :不同的版本,可能会有部分区别,总之注意下版本

    2024年02月22日
    浏览(41)
  • Java中构造器详解(类的五成员之三:构造器)

    先看文章目录,大致了解知识点结构,直接点击文章目录可以跳转到文章指定位置。 Java的基本单位是类,类中包含五个部分,这篇写的是 构造器 。 (1)变量 (2)方法 (3)构造器 (4)初始化块 (5)内部类 ①构造器是处于Java类中的一个方法,最大的作用创建对象时执行

    2024年02月08日
    浏览(36)
  • 7.5 构造器详解

    7.5 构造器详解 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点: 必须和类的名字相同 必须没有返回类型,也不能写void 一个类即使什么都不写都会存在一个构造方法。 构造器的作用 可以实例化一些初始值,比如一些游戏

    2024年02月14日
    浏览(29)
  • Java 构造器

    2024年02月12日
    浏览(100)
  • 单例模式与构造器模式

    单例模式(Singleton Pattern):创建型模式,提供了一种创建对象的最佳方式,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建 在应用程序运行期间,单例模式只会在全局作用域下创建一次实例对象,让所有需要调用的地方都共享这一单

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包