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

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

SELECT  * FROM  TABLE_NAME AS a
<where>
  <if test="constomerGradeArray!=null and constomerGradeArray.length!=0">
    AND a.constomer_grade in
    <foreach collection="constomerGradeArray" item="extraId" index="i" open="(" separator="," close=")">
      #{extraId}
    </foreach>
  </if>
<where>

  

参数讲解的:

  collection:需要循环的集合

  item:每次循环的参数名字

  index:索引(0开始)

  separator:分隔符

  open:整个循环开始的分隔符

  close:整个循环结束的分隔符

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

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

SELECT  * FROM  TABLE_NAME AS a WHEREa.id not in ${extraIds}

一小段示类代码:

String  extraIds = "1,2,3,4,5";
String[] extraIdArray = extraIds.split(",");
extraIds= "";
for (String extraId : extraIdArray) {
  if (extraId != null && !"".equals(extraId)) {
    extraIds += ",'" + extraId + "'";
  }
}
extraIds = "(" + extraIds.substring(1) + ")";

拼接后:('1','2','3','4','5')

参考链接:https://blog.csdn.net/weixin_38391672/article/details/80701504

mybatis处理集合、数组参数使用in查询等语句的两种方法的更多相关文章

  1. 【get√】golang中实现从腾讯云CVM查询网卡流量的两种方法

    公众号文章链接 主要参考了以下位置的资料: 云服务器监控接口 腾讯云go-sdk example 方法一:使用腾讯云go-sdk go.mod文件中增加这样一行: github.com/tencent ...

  2. mybatis 根据id批量删除的两种方法

    原文:https://blog.csdn.net/qq_40010745/article/details/81032218 mybatis 根据id批量删除的两种方法   第一种,直接传递给mappe ...

  3. 【mybatis基础】mybatis开发dao两种方法

    mybatis是一个支持普通SQL查询,存储过程和高级映射的优秀的持久层的框架,是apache下的顶级项目.mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.mybat ...

  4. 获取网页URL地址及参数等的两种方法(js和C#)

    转:获取网页URL地址及参数等的两种方法(js和C#) 一 js 先看一个示例 用javascript获取url网址信息 <script type="text/javascript&q ...

  5. 用easyui实现查询条件的后端传递并自动刷新表格的两种方法

    用easyui实现查询条件的后端传递并自动刷新表格的两种方法 搜索框如下: 通过datagrid的load方法直接传递参数并自动刷新表格 通过ajax的post函数传递参数并通过loadData方法将 ...

  6. PHP中数组合并的两种方法及区别介绍

    PHP数组合并两种方法及区别 如果是关联数组,如下: 复制代码代码如下: $a = array( 'where' => 'uid=1', 'order' => 'uid', ); $b = ...

  7. php获取数组中重复数据的两种方法

    分享下php获取数组中重复数据的两种方法. 1,利用php提供的函数,array_unique和array_diff_assoc来实现 <?php function FetchRepeatMem ...

  8. android fragment传递参数_fragment之间传值的两种方法

    在Activity中加载Fragment的时候.有时候要使用多个Fragment切换.并传值到另外一个Fragment.也就是说两个Fragment之间进行参数的传递.查了很多资料.找到两种方法.一种 ...

  9. python将两个数组合并成一个数组的两种方法的代码

    内容过程中,把写内容过程中常用的内容收藏起来,下面的资料是关于python将两个数组合并成一个数组的两种方法的内容,希望能对小伙伴们有帮助. c1 = ["Red","G ...

随机推荐

  1. 设计模式学习-使用go实现适配器模式

    适配器模式 定义 代码实现 优点 缺点 适用范围 代理.桥接.装饰器.适配器4种设计模式的区别 参考 适配器模式 定义 适配器模式的英文翻译是Adapter Design Pattern.顾名思义,这 ...

  2. 剖析虚幻渲染体系(12)- 移动端专题Part 3(渲染优化)

    目录 12.6 移动端渲染优化 12.6.1 渲染管线优化 12.6.1.1 使用新特性 12.6.1.2 管线优化 12.6.1.3 带宽优化 12.6.2 资源优化 12.6.2.1 纹理优化 1 ...

  3. [loj2469]最小方差生成树

    2018年论文题 约定:令点集$V=[1,n]$.边集$E=[1,m]$,记$m$条边依次为$e_{i}=(x_{i},y_{i},c_{i})$(其中$1\le i\le m$),将其按照$c_{i ...

  4. [luogu4718]Pollard-Rho算法

    模板题 题解主要分为两部分,即Miller-Robin判素数以及关于Pollard-Rho算法 1.Miller-Robin判素数 对于一个数$n$,判定其是否为素数,依次执行以下几步-- (1)若$ ...

  5. [loj3304]作业题

    (以下假设$T=(V,\{e_{1},e_{2},...,e_{n-1} \})$是一棵树) 根据莫比乌斯反演,有$\gcd(w_{1},w_{2},...,w_{e_{n-1}})=\sum_{d| ...

  6. dart系列之:在dart中使用数字和字符串

    目录 简介 数字 字符串 StringBuffer 总结 简介 要想熟悉一种语言,最简单的做法就是熟悉dart提供的各种核心库.dart为我们提供了包括dart:core,dart:async,dar ...

  7. java获取CPU核心数

    package ThreadTest; public class ThreadTest05 { public static void main(String[] args) { //获取CPU核心 S ...

  8. springboot默认Thymeleaf模板引擎js的解决方案

    <script th:inline="javascript"> var btnexam=[[${btnexam}]]; console.log(btnexam); va ...

  9. C#.NET 操作Windows服务承载WCF

    Windows服务的制作.安装可以参考这篇: C#.NET 操作Windows服务(安装.卸载) - runliuv - 博客园 (cnblogs.com) 本篇会在这个解决方案基础上,继续修改. 一 ...

  10. 目前国内UI设计师的发展现状如何?

    在分析这个问题之前,我们先来说说如何优秀的UI设计师所需要具备的素质是什么,只有做到了以下几点,才有资格在这个行业生存下去的能力,也才有机会展望行业的未来前景. 一位合格的UI设计师必须做到以下3点: ...