`

mybatis对传入list、array等数据集合的处理

 
阅读更多

 

mybatis的mapper.xml文件中传入一个String参数时,在sql中参数名就是_parameter,如果传入一个list怎么处理呢?

有两种方法

 

1.

int delCardsByGuids(List<String> guids);

//不管dao层参数时什么,xml文件中collection位置名为list
<delete id="delCardsByGuids" parameterType="java.util.List">
		delete from T_MSP_RES_CARD
		where guid in
		<foreach collection="list" item="cardGuid" open="(" separator="," close=")">
			#{cardGuid}
		</foreach>
	</delete>

 

2.

int delCardsByGuids(@Param("guids") List<String> guids);

//dao层参数中添加注解@Param值 就是xml文件中参数名如下

<delete id="delCardsByGuids" parameterType="java.util.List">
		delete from T_MSP_RES_CARD
		where guid in
		<foreach collection="guids" item="cardGuid" open="(" separator="," close=")">
			#{cardGuid}
		</foreach>
	</delete>

 

这两种方法都能用,至于数组同理,第一种方法中list该为array就行

分享到:
评论

相关推荐

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

    在MyBatis中,处理集合参数如list、array以及map是非常常见的操作。这些参数通常用于构建动态SQL,特别是当需要在`IN`语句中使用多个值时。下面将详细解释如何在MyBatis中使用这些参数类型。 1. **List参数**: 当...

    Java调用存储过程--传入集合参数

    ### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...

    Mybatis传list参数调用oracle存储过程的解决方法

    这种方法可以摆脱Mybatis批量插入数据的诸多限制,例如不能实时返回主键、foreach标签循环集合长度有限制等问题,并且可以灵活地控制事务回滚。 结论 使用Mybatis传List参数调用Oracle存储过程,可以实现批量插入...

    测试mybatis里foreach用法

    在MyBatis中,`&lt;foreach&gt;`标签是一个非常重要的元素,它主要用于动态SQL语句的构建,尤其是在处理集合数据类型如List、Array、Map时。`&lt;foreach&gt;`标签的使用可以极大地提高代码的可读性和可维护性,避免了传统的字符...

    springmybatis

    3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 ...

    MyBatis批量插入(insert)数据操作

    `foreach`标签是MyBatis提供的循环构造SQL语句的工具,它可以迭代任何集合类型的数据,包括List、Set等。`collection`属性的值取决于传入参数的类型,例如: - 如果是List,`collection`应为`list` - 如果是数组...

    MyBatis中Foreach参数问题.doc

    在使用MyBatis进行数据库操作时,经常会遇到一些参数传递的问题,特别是在使用`foreach`语句处理集合数据时,很容易出现“Parameter 'xxxList' not found. Available parameters are [Collection,list]”这样的错误...

    关于 MyBatis 我总结了 10 种通用的写法.docx

    如果传入的参数是多个,那么需要将它们封装成一个Map,然后collection属性值就是传入的List或array对象在自己封装的map里面的key。 4. choose标签的使用 choose标签是MyBatis中一个非常有用的标签,用于按顺序将...

    Mybatis批量删除数据操作方法

    - `collection`:指定需要迭代的集合,这里可以根据传入的参数类型是数组还是列表来设置为`array`或`list`。 - `item`:代表集合中每个元素的别名,在本例中代表`standard_id`的值。 - `open`:设置SQL语句开始的...

    Mybatis框架 mapper.xml文件中parameterType传递参数常用的几种方式.pdf

    - #{}:这种方式会将参数值当作字符串处理,Mybatis会对其进行预编译,将参数值放入预编译语句中,并且参数值两边自动加上单引号,这样可以有效防止SQL注入。 - ${}:这种方式是直接将参数值拼接到SQL语句中,不会...

    Mybatis 传输List的实现代码

    总结起来,MyBatis 通过 `&lt;foreach&gt;` 标签实现了对 List 或 Array 类型参数的处理。在处理多个参数时,推荐使用 Map 封装参数并指定 `collection` 的值,以实现灵活的数据传递。这种方式不仅简化了代码,还提高了...

    MyBatis 深入浅出-动态SQL

    6. **`&lt;foreach&gt;`** - 遍历集合或数组,生成IN子句等。 接下来将详细介绍这些标签的使用方法和应用场景。 #### 1. `&lt;if&gt;` 标签 `&lt;if&gt;` 标签是最常用的动态SQL元素之一,用于根据条件决定是否添加某个SQL片段。...

    MyBatis参数处理实现方法汇总

    集合(List、Set)或数组也会被封装到Map中,键名分别为`collection`、`list`或`array`。例如,`List&lt;Integer&gt; ids`,在SQL中可以通过`#{list[0]}`来获取第一个元素的值。 8. **参数值的获取**: - `#{}`:以预...

    Mybatis数据批量插入如何实现

    Mybatis数据批量插入实现详解 Mybatis是一种流行的持久层框架,它提供了多种方式来实现数据批量插入。本文将详细介绍如何使用Mybatis实现数据批量插入。 使用foreach标签实现批量插入 在Mybatis中,可以使用...

    MyBatis批量插入数据过程解析

    在本篇文章中,我们将详细介绍MyBatis批量插入数据过程解析的知识点,通过示例代码对大家的学习或者工作具有一定的参考学习价值。 首先,让我们来了解MyBatis批量插入数据过程的实现过程。在程序中,需要封装一个...

    mybatis常用语句和lyaui 多条件查询加分页

    - **对象路径书写规范**:当插入数据时,传入的对象路径需要写全,例如在插入外键时,应直接插入数字而非整个对象。 ```java /** * 添加评论 */ public int addComment(Comments comments); ``` ```xml ...

    详解mybatis foreach collection示例

    但不管调用哪个方法,都会对原来JDK传入的参数Object[]类型,通过getParam方法转换成一个Object。 在源代码中,我们发现,一个参数与多个参数的处理方式是不同的。如果参数个数大于一个,则会被封装成Map,key值...

    MyBatis动态标签.pdf

    - 如果传入的是单参数且参数类型是一个`Array`,则默认使用`array`作为`Array`对象的键。 - 如果传入的参数是多个,可以封装到一个`Map`中,但是`Map`对象没有默认的键,必须使用`@Param`注解指定`collection`的键。...

    MyBatis注解与整合、分页-实验11.docx

    为了验证SSM整合的成功,我们需要配置Spring和MyBatis的相关文件,包括数据源配置、MyBatis配置以及Spring的事务管理等。例如,在Spring的配置文件中,我们可以这样配置: ```xml ${jdbc.driver}" /&gt; ${jdbc.url...

Global site tag (gtag.js) - Google Analytics