首页 > 其他分享 >MyBatis plus之foreach、like、likeRigth、likeLeft

MyBatis plus之foreach、like、likeRigth、likeLeft

时间:2024-03-22 09:59:18浏览次数:23  
标签:username 语句 like likeLeft QueryWrapper likeRigth 查询 foreach

文章目录

1. foreach

Mybatis Plus提供了foreach标签来简化在查询语句中使用in语句的操作。通过foreach可以将一个集合中的元素拼接成一个逗号分隔的字符串,并将其作为in语句的参数。

例如,我们可以使用foreach来生成一个动态的IN条件,查询符合多个条件的记录:

List<Integer> idList = Arrays.asList(1, 2, 3);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.in("id", idList);

List<User> userList = userMapper.selectList(queryWrapper);

在上述代码中,我们通过selectList方法查询了id在1、2、3之间的用户记录。其中,in方法会动态生成一个IN条件,使用了foreach功能。

在SQL语句中,会生成以下代码:

SELECT * FROM user WHERE id IN (1, 2, 3)

可以看到,使用foreach可以很方便地动态生成IN条件,避免了手动拼接SQL字符串的麻烦。

另外,MyBatis Plus的foreach还支持其他功能,比如可以指定集合对象的属性和字段进行匹配,指定分隔符等。具体使用方法可以参考MyBatis Plus的官方文档。

注意,在使用foreach标签时,需要保证集合参数的名称和集合中对象的属性名称一致。例如,上述示例中的idList参数名称需要和User对象中的id属性名称一致。

除了上述示例中的in语句,foreach标签还可以用于其他类型的语句,例如update和delete语句中的set语句。

2. like

在MyBatis plus中,使用like查询可以使用like方法来实现。

例如,假设我们有一个表格user,其中有一个username字段,我们想要查询username字段中包含某个关键字的数据,可以使用以下代码:

String keyword = "admin";
List<User> userList = userMapper.selectList(new QueryWrapper<User>().like("username", keyword));

以上代码中,userMapper是MyBatis plus生成的Mapper接口,User是实体类,username是表格user中的字段名。new QueryWrapper<User>().like("username", keyword)表示创建一个查询条件,使用like方法指定查询的字段和关键字。

3. likeLeft

使用likeLeft方法来实现左模糊查询,例如:

List<User> userList = userMapper.selectList(new QueryWrapper<User>().likeLeft("username", keyword));

以上代码中,likeLeft方法表示左模糊查询,即查询username字段以关键字开头的数据。

4. likeRight

使用likeRight方法来实现左模糊查询,例如:

List<User> userList = userMapper.selectList(new QueryWrapper<User>().likeRight("username", keyword));

以上代码中,likeRight方法表示右模糊查询,即查询username字段以关键字结尾的数据。

需要注意的是,上述代码中的userMapper需要根据实际情况进行替换,可以是自动生成的Mapper接口,也可以是手动创建的Mapper接口的实现类。在MyBatis plus中,使用like查询可以使用like方法来实现。

标签:username,语句,like,likeLeft,QueryWrapper,likeRigth,查询,foreach
From: https://blog.csdn.net/qq_35130745/article/details/136871157

相关文章

  • Minimal BASH-like line editingis supported解决方法
    一、问题原因        Windows/Linux双启动的电脑一般都使用grub作为引导程序,出现这个原因,是windows启动的时候,没有找到启动文件。我是因为安装了windows和Linux双系统,卸载Ubuntu系统时,没有完全删除Ubuntu的相关信息,重启电脑将无法正常进入Windows系统,开机后一直卡在gr......
  • in,not in,like,not like,=,!=与null的恩怨情仇
    1.情景展示当字段值为null时,会给我们的查询带来不小的麻烦,今天就来聊一聊:in(),notin(),like,notlike,=,!=或<>在字段值为null时,出现的各种问题。2.具体分析以oracle进行举例分析。in()  notin() like notlike = !=或<> 3.解决方案使用exists(),no......
  • 关于电化学储能BMS系统的一些研究(@Like预告)
    关于电化学储能BMS系统的一些研究(@Like预告)电化学储能术语u BMS电池管理系统(感知)u EMS能量管理系统(决策)u PCS储能变流器(执行)u BMS三层架构BAMS、BCU、BMUu BAMS(BSU)总控(堆控)储能电池总控系统u BCMU(BCU)主控(簇控)电池组控制管理单元u BMU(BMU)从控(从控)电池单体......
  • Mybatis之like、likeRight、likeLeft的使用
    前言Mybatis中的like用于模糊查询,可以匹配和指定字符串相似的字段。而likeRight和likeLeft则是like的变种,分别表示从开头和结尾匹配。1.likelike:like方法允许您使用’%'通配符执行区分大小写的模式匹配操作。例如:SELECT*FROMusersWHEREusernameLIKE'%张%';......
  • mysql索引(索引失效,遵循最左前缀,使用1.全值匹配 2.覆盖索引,失效:索引加函数,范围查询右边
    1.遵循联合索引最左列原则当表中创建了一个联合索引idx_name_age_position案例演示1.当我们在执行sql语句:以name为where条件时,我们可以用到索引EXPLAINSELECT*FROMemployeesWHEREname='LiLei';2.当我们在执行sql语句:以age为where条件时,索引就会失效......
  • Luna likes Love 题解
    ProblemLink简要题意题目很清楚。分析定理两个人中左边的人一直向右运动,和两人向中间走所用的步数相同证明假设有两组人为\(a_l,a_r,b_l,b_r(a_l<a_r,b_l<b_r)\)。\(\textrm{I}.\)当\(a_r<b_l\)(两者互不相交)时如图:显然成立。$\textrm{II}.$......
  • 6-springs_and_springlike_things
    Oneofthemostusefulforceswecancreateforourengineisaspringforce.Althoughspringshaveanobvioususeindrivinggames(forsimulatingthesuspensionofacar),theycomeintotheirowninrepresentingsoftordeformableobjectsofmanykinds......
  • AT_abc256_h [ABC256Ex] I like Query Problem 题解
    分析用势能线段树。对于一段数字\(a_l\)到\(a_r\),每次全部除以一个大于\(1\)的数,不难发现最多除以\(\logx\)次就会使\(a_l\)到\(a_r\)全部变成\(0\),其中\(x\)是区间最大值。所以,在没有操作\(2\)的情况下,我们可以在每次操作\(1\)的时候都单点修改,只要在某个......
  • 【Oracle】使用like的时候遇到的问题
    【Oracle】使用like的时候遇到的问题like语句其中的%就代表着一个零或者多个字符,_代表一个字符,%与_可以同时使用name想查询以‘_’结尾的字符用这个语句就会有问题selectcount(1)fromdualwhere'底壳组件.pdf'like'%_'LIKE语句与多个下划线一样可以匹配出来数据,一般遇......
  • 数据库优化之:like %xxx%该如何优化【转】
     '%腾讯%',由于左边也是百分号,所以根据匹配最左原则,走不到索引。这时就看有没有辅助条件了,发现还有个create_at字段,可以建立联合索引进行查询,发现会走索引。如果也没有联合索引可以使用,可以用覆盖索引,后者ES之类的。转自数据库优化之:like%xxx%该如何优化#编程#mysql#数据......