MyBatis-Plus条件构造器[常用的模糊查询、排序查询、逻辑查询和指定字段查询案例]
创始人
2024-03-16 10:50:50
0

系列文章目录

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-----'值%'@Testpublic void testLikeRight(){QueryWrapper wrapper=new QueryWrapper<>();//用户名以‘哈’开头的用户wrapper.likeRight("user_name","哈");List users = userMapper.selectList(wrapper);for (User user : users) {System.out.println(user);}}

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

 

二、排序查询

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 降序@Testpublic void testOrderDesc(){QueryWrapper wrapper=new QueryWrapper<>();//以id降序为例wrapper.orderByDesc("user_id");List users = userMapper.selectList(wrapper);for (User user : users) {System.out.println(user);}}

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

 

三、逻辑查询

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@Testpublic void testOr(){QueryWrapper wrapper=new QueryWrapper<>();//查询用户名为心态或者为李四的用户信息wrapper.eq("user_name","心态").or()//或者.eq("user_name","李四");List users = userMapper.selectList(wrapper);for (User user : users) {System.out.println(user);}}

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

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

 

四、指定字段字段

这里说的就是select的用法

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

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

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

执行效果图如下:

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

 


 

总结

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

相关内容

热门资讯

低空经济持续获政策支持 业绩有... 人民财讯12月26日电,低空经济作为国家战略性新兴产业,持续受到政策支持。 作为万亿级产业,低空经济...
【深圳特区报】从“制度设计图”... 近日,深圳市财政局召开“数据资产全过程管理试点工作培训暨经验交流会”(以下简称“培训交流会”),围绕...
原创 重... 在情感的漩涡中,我们常常看到悲剧的发生。近日,一则令人心痛的消息震动了整个网络——重庆一男子因感情纠...
极氪回应明年车辆质保权益等问题... 【CNMO科技消息】近日,极氪汽车发布《极氪零距离 | 你问我答》公告,就用户关注的车辆质保、免费充...
关于海南育儿补贴制度实施热点问... 户籍刚迁入海南的婴幼儿是否能享受育儿补贴;如何快速了解补贴申领流程……12月25日,海南省新闻办公室...
宋朝的中介制度 走进《清明上河图》中汴河两岸喧嚷的市集,除了林立的店铺与往来的舟车,还有一种身影穿梭其间——他们并非...
《西安市地下水条例》《西安历史... 央广网西安12月26日消息(记者侯凯奇)12月25日,西安市人大常委会召开新闻发布会,正式公布《西安...
三部门发文完善幼儿园收费政策 ... 近年来,人民群众对适龄儿童“上得起”“上好园”的诉求越来越强烈,幼儿园收费政策需要与时俱进。近日,为...
下一阶段货币政策如何发力?央行... 中国网财经12月26日讯 近日中国人民银行货币政策委员会召开2025年第四季度例会,分析国内外经济金...
跨省盗杀家犬 涉嫌犯罪终落网 山西晚报·山河+讯(记者 辛戈)套牌的汽车、70余支已经装填或待用的毒针、50余颗用剧毒物质自制的药...