`

Mybatis 传入List参数

阅读更多
//dao 代码 如果传入的参数是数组,也一样
void insertDefaultMsg(@Param("idsList") ArrayList<String> idsList);
//xml文件
<update id="insertDefaultMsg" parameterType="java.util.List">
		UPDATE 
		  plf_pur_delivery_plan p 
		SET
		  p.promise_delivery_amount = p.quantity_req,
		  p.promise_delivery_time = p.quantity_time 
		WHERE p.id IN
		<foreach item="item" collection="idsList" separator="," open="(" close=")" index="">  
	      #{item, jdbcType=VARCHAR}  
	    </foreach>  
	</update>

//如果传入字符串
//service 代码
Map<String, String> map = bean.getDatas().get(0);
		String ids = map.get("ids");
		String[] idsArr = ids.split(",");
		String inId = "";
		for (int i = 0; i < idsArr.length; i++) {
			if (i != idsArr.length - 1) {
				inId += "'" + idsArr[i] + "',";
			} else {
				inId += "'" + idsArr[i] + "'";
			}
		}
		List<Map<String, String>> list = purDeliveryPlanDao
				.getPlanListManual(inId);

//dao层代码
List<Map<String, String>> getPlanListManual(@Param("inId") String inId);
//xml 文件
<select id="getPlanListManual" parameterType="java.lang.String" resultType="java.util.Map">
		SELECT 
		  p.supplier_code,
		  p.pur_order_no,
		  IF(
		    p.update_times > 0,
		    '修改订单',
		    '新订单'
		  ) AS order_type 
		FROM
		  plf_pur_delivery_plan p 
		WHERE p.is_notice = '0' 
		  AND p.is_delete = '1' 
		  AND p.id in(<![CDATA[${inId}]]>)
		GROUP BY p.supplier_code,
		  p.pur_order_no 
		ORDER BY p.supplier_code 
	</select>
分享到:
评论

相关推荐

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

    "Mybatis调用Oracle存储过程传List参数解决方法" Mybatis是当前最流行的持久层框架之一,它提供了强大的数据访问和操作功能。但是,如何将List类型参数传递给Oracle存储过程,实现批量插入数据却是一个棘手的问题,...

    mybatis动态插入list传入List参数的实例代码

    MyBatis 动态插入 List 传入 List 参数的实例代码详解 MyBatis 是一款优秀的 ORM 工具,提供了许多实用的功能,其中之一便是动态插入 List,下面我们将通过实例代码详解 MyBatis 动态插入 List 传入 List 参数的...

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

    1. **List参数**: 当传入的参数是一个List时,`&lt;foreach&gt;`标签的`collection`属性应设置为`list`。例如,以下是一个查询员工的例子,其中`list`参数包含员工ID的列表: ```xml select * from EMPLOYEES e ...

    MyBatis传入多个参数的问题

    ### MyBatis传入多个参数的问题 在使用MyBatis框架进行数据库操作时,经常会遇到需要向SQL查询语句传入多个参数的情况。本文将详细介绍几种常见的多参数传递方法,并结合具体的代码示例来帮助读者更好地理解和应用...

    MyBatis传入数组集合类并使用foreach遍历

    "MyBatis传入数组集合类并使用foreach遍历" MyBatis是一款流行的Java持久层框架,提供了强大的数据访问能力,今天我们来讨论如何在MyBatis中传入数组集合类并使用foreach遍历。 在实际开发中,我们经常需要将数组...

    Mybatis多参数查询与列表查询不同方式实现

    调用时传入List类型的参数: ```java List&lt;Integer&gt; ids = Arrays.asList(1, 2, 3); List&lt;User&gt; users = userMapper.selectUsersByIds(ids); ``` 总结来说,Mybatis通过多种方式支持多参数查询和列表查询,...

    MyBatis传入参数的实例代码

    以上就是MyBatis中传入参数的基本用法,包括基本数据类型、复杂数据类型(实体类和Map)、注解传参以及传入List参数的方法。通过这些方式,开发者可以根据实际需求灵活地传递执行SQL所需的参数。

    MyBatis中传入参数parameterType类型详解

    MyBatis中传入参数parameterType类型详解 MyBatis是一款流行的持久层框架,它提供了一个灵活的方式来与数据库交互。在MyBatis中,parameterType类型是Mapper文件中的一个重要属性,它用于指定Mapper接口方法接受的...

    MyBatis中Foreach参数问题.doc

    当传入一个集合类型的参数时,MyBatis会将其封装成一个包含`collection`和`list`两个键的Map对象。具体实现如下: ```java private Object wrapCollection(Object object) { DefaultSqlSession.StrictMap map; if...

    mybatis动态sql之Map参数的讲解

    MyBatis动态SQL之Map参数的讲解 MyBatis动态SQL中参数类型可以是Map类型的,在实际开发中,我们经常需要在Mapper文件中传递Map参数,以实现动态SQL的构建。今天,我们将详细讲解MyBatis动态SQL之Map参数的使用。 ...

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

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

    Mybatis参数传递1

    在MyBatis中,参数的传递方式有很多种,主要包括基本类型的参数、对象参数、多个参数以及使用注解的方式。下面将详细讲解这些方法及其注意事项。 1. 单个参数传入基本类型或直接传入类类型 当参数为基本类型如`...

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

    在Mybatis框架中,mapper.xml文件是定义SQL语句、映射规则以及参数传递方式的重要组成部分。正确地使用parameterType传递参数对于开发高质量的应用程序至关重要。以下是几种常用的parameterType参数传递方式以及#和$...

    深入理解mybatis原理

    MyBatis能够通过传入的参数动态生成SQL语句,这是通过OGNL(Object-Graph Navigation Language)表达式语言实现的。这种设计让MyBatis具有很好的灵活性和扩展性。参数映射是数据处理层的另一个重要功能,主要涉及...

    mybatis动态sql及参数的传递

    MyBatis支持传入多个参数,可以通过`@Param`注解指定参数名。 1. Map参数示例: ```java Map, Object&gt; params = new HashMap(); params.put("username", "John"); params.put("age", 30); List&lt;User&gt; users = ...

    mybatis直接执行sql语句后续之一

    当调用SqlSession的`selectOne`、`selectList`、`insert`、`update`或`delete`方法时,都需要传入MappedStatement的ID来定位具体的SQL操作。 3. **Executor**:MyBatis提供了多种Executor执行器类型,包括...

    尚硅谷Mybatis视频教程21-30

    视频中详细介绍了如何将传入的参数进行封装,特别是如何通过Map对象进行参数传递,以及在使用#和$进行参数取值时的区别。#{}用于防止SQL注入,而${}则会直接拼接SQL字符串。 2. **源码分析**:针对Mybatis的源码...

    详解MyBatis直接执行SQL查询及数据批量插入

    在DAO接口中,定义一个方法,接受一个List参数,该参数包含了所有要插入的数据。 ```java public interface SomeDAO { public void insertBatch(@Param("list") List&lt;Student&gt; students); } ``` 批量插入的...

    MyBatisDemo

    1. **创建(CREATE)**: MyBatis提供插入数据的功能,可以通过定义一个INSERT语句,设置参数占位符,然后在Java代码中传递参数。例如,在Mapper接口中定义一个`insertUser`方法,对应XML中的INSERT语句,通过`@Param...

    MyBatis参数处理实现方法汇总

    当多个参数对应业务逻辑的数据模型时,可以直接传入一个PoJO对象。在SQL中,通过`#{属性名}`来获取PoJO对象的属性值。 5. **Map参数**: 如果参数不是业务模型中的数据,可以使用Map来传递。在SQL中,通过`#{key}...

Global site tag (gtag.js) - Google Analytics