对于mybatis的参数类型是集合数组的时候进行查询。

第一种:参数list ,使用mybatis的标签

 1 SELECT  * FROM  TABLE_NAME AS a WHERE
2
3 a.id not in #{extraIds}
4 <foreach collection="extraIds" item="extraId" index="i" open="(" separator="," close=")">
5 #{extraId}
6
7 </foreach>
8
9 参数讲解的:
10
11 collection:需要循环的集合
12
13 item:每次循环的参数名字
14
15 index:索引(0开始)
16
17 separator:分隔符
18
19 open:整个循环开始的分隔符
20
21 close:整个循环结束的分隔符

第二种:参数string的数组,即:${}

需要处理参数形成extraIds=('1','2','3')这种类型,需要拼接字符 ''

或直接使用extraIds=("1,2,3")这种类型

注意在mybatis中使用的是${},不能使用#{}否则报错

 1 SELECT  * FROM  TABLE_NAME AS a WHERE
2
3 a.id not in ${extraIds}
4
5 一小段示类代码:
6
7 String extraIds = "1,2,3,4,5";
8
9 String[] extraIdArray = extraIds.split(",");
10 extIds = "";
11 for (String extraId : extraIdArray) {
12 if (extraId != null && !"".equals(extraId)) {
13 extraIds += ",'" + extraId + "'";
14 }
15
16 }
17
18 extraIds = "(" + extraIds.substring(1) + ")"
19
20 拼接后:('1','2','3','4','5')

第三种:使用QueryWrapper 直接用list

1 List<Integer> activityHelpSponsorIds = Arrays.asList(1,2,3);
2 QueryWrapper<HelpLog> queryWrapper = new QueryWrapper<>();
3 queryWrapper.lambda().in(HelpLog::getActivityHelpSponsorId, activityHelpSponsorIds);
4 List<HelpLog> helperlogList = helpLogService.list(queryWrapper);

mybatis处理集合、数组参数使用in查询的更多相关文章

  1. mybatis处理集合、数组参数使用in查询等语句的两种方法

    对于mybatis的参数类型是集合数组的时候进行查询. 第一种:参数list使用mybatis的标签 SELECT * FROM TABLE_NAME AS a <where> <i ...

  2. Mybatis传递多个参数进行SQL查询的用法

    当只向xxxMapper.xml文件中传递一个参数时,可以简单的用“_parameter”来接收xxxMapper.java传递进来的参数,并代入查询. 但是,如果在xxxMapper.java文件中 ...

  3. Mybatis 传入多个参数查询数据 (3种方法)

    第一种方案 DAO层的函数方法 public User selectUser(String name,String area); 对应的Mapper.xml <select id="s ...

  4. MyBatis传入集合 list 数组 map参数的写法

    foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合.foreach元素的属性主要有item,index,collection,open,separator,close.ite ...

  5. springMVC 接收数组参数,mybatis 接收数组参数,mybatis批量插入/批量删除案例

    案例是给一个用户赋予多个权限,多个权限用其对应的主键 id 为参数,组成了 一个id数组,传给springMVC,然后springMVC传给mybatis,然后mybatis批量插入.其实类似的场景还 ...

  6. MyBatis基础入门《三》Select查询集合

    MyBatis基础入门<三>Select查询集合 描述: 代码新增了一个MybatisUtil工具类,查询数据库返回集合的时候,接收数据的三种方式.由于代码会渐渐增多,未涉及改动过的文件不 ...

  7. ThinkPHP5.1中数据查询使用field方法数组参数起别名时遇到的问题

    首先数据库基本查询是没有问题的 <?php namespace app\index\controller; use think\Db; class Demo5 { //1.单条查询 public ...

  8. MyBatis中foreach传入参数为数组

    一.当只有一个参数,并且这个参数是数组时 接口方法的参数不需要添加@Param注释,collection="array" 示例 接口的方法 void deleteMulti(Str ...

  9. mybatis第二天——动态SQL与关联查询

    大纲摘要: 1.输入映射和输出映射 a) 输入参数映射 b) 返回值映射 2.动态sql a) If b) Where c) Foreach d) Sql片段 3.关联查询 a) 一对一关联 b) 一 ...

  10. 集合 数组 定义 转换 遍历 Arrays API MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

随机推荐

  1. [转帖]kafka_export 部署实战

    https://zhuanlan.zhihu.com/p/57704357 Kafka Exporter 监控 Kafka 实时数据 需要安装的组件 Prometheus:时序数据库,按时间保存监控历 ...

  2. [转帖]一个Linux 内核 bug 导致的 TCP连接卡死

    https://plantegg.github.io/2022/10/10/Linux%20BUG%E5%86%85%E6%A0%B8%E5%AF%BC%E8%87%B4%E7%9A%84%20TCP ...

  3. [译]深入了解现代web浏览器(三)

    本文是根据Mariko Kosaka在谷歌开发者网站上的系列文章https://developer.chrome.com/blog/inside-browser-part3/ 翻译而来,共有四篇,该篇 ...

  4. 【scikit-learn基础】--『回归模型评估』之可视化评估

    在scikit-learn中,回归模型的可视化评估是一个重要环节.它帮助我们理解模型的性能,分析模型的预测能力,以及检查模型是否存在潜在的问题.通过可视化评估,我们可以更直观地了解回归模型的效果,而不 ...

  5. 手撕Vue-数据驱动界面改变中

    经过上一篇的介绍,已经实现了观察者模式的基本内容,接下来要完成的就是将上一篇的发布订阅模式运用到 Nue 中,实现数据驱动界面改变. 在监听数据变化的章节当中,根据指定的区域和数据去编译渲染界面 这个 ...

  6. 19.5 Boost Asio 传输结构体

    同步模式下的结构体传输与原生套接字实现方式完全一致,读者需要注意的是在接收参数是应该使用socket.read_some函数读取,发送参数则使用socket.write_some函数实现,对于套接字的 ...

  7. CE修改器入门:查找多级指针

    本关是第6关的加强版,CE 6.X 教程中的4级指针比5.X的要简单些.多级指针就像玩解谜游戏一样,谜团不只一个,盒子中还有盒子.这里面是4级指针,游戏中也有比如8级指针,12级指针等等,思路都是一样 ...

  8. IT技术:开篇 - IT技术系列文章

    笔者已经工作了十多年,在这十多年里,笔者在博客上也对自己所学的技术方面的事情记录成了博文.这些博文有些是笔者自己所学所记,有些是将网上的博文进行的转载.在经历了这么多的技术学习之后,笔者将自己的经验记 ...

  9. VSCode实现GDB图形界面远程调试

    前言 在习惯了集成开发环境的图形界面调试时,首次使用GDB远程调试必定很不习惯,下面讲述如何利用VSCode实现GDB图形界面远程调试 代码在Linux服务器上,而平常都在Windows上使用,那么V ...

  10. ESP8266的AT指令模块程序

    最新代码可点击下载:ESP8266 模块代码 和以下代码实现方式不一致,更加自由可控 本段代码只是测试了esp8266作为服务器端使用,没有测试作为客户端使用. 没有超长延时等待或死循环等待AT指令反 ...