//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调用Oracle存储过程传List参数解决方法" Mybatis是当前最流行的持久层框架之一,它提供了强大的数据访问和操作功能。但是,如何将List类型参数传递给Oracle存储过程,实现批量插入数据却是一个棘手的问题,...
MyBatis 动态插入 List 传入 List 参数的实例代码详解 MyBatis 是一款优秀的 ORM 工具,提供了许多实用的功能,其中之一便是动态插入 List,下面我们将通过实例代码详解 MyBatis 动态插入 List 传入 List 参数的...
1. **List参数**: 当传入的参数是一个List时,`<foreach>`标签的`collection`属性应设置为`list`。例如,以下是一个查询员工的例子,其中`list`参数包含员工ID的列表: ```xml select * from EMPLOYEES e ...
### MyBatis传入多个参数的问题 在使用MyBatis框架进行数据库操作时,经常会遇到需要向SQL查询语句传入多个参数的情况。本文将详细介绍几种常见的多参数传递方法,并结合具体的代码示例来帮助读者更好地理解和应用...
"MyBatis传入数组集合类并使用foreach遍历" MyBatis是一款流行的Java持久层框架,提供了强大的数据访问能力,今天我们来讨论如何在MyBatis中传入数组集合类并使用foreach遍历。 在实际开发中,我们经常需要将数组...
调用时传入List类型的参数: ```java List<Integer> ids = Arrays.asList(1, 2, 3); List<User> users = userMapper.selectUsersByIds(ids); ``` 总结来说,Mybatis通过多种方式支持多参数查询和列表查询,...
以上就是MyBatis中传入参数的基本用法,包括基本数据类型、复杂数据类型(实体类和Map)、注解传参以及传入List参数的方法。通过这些方式,开发者可以根据实际需求灵活地传递执行SQL所需的参数。
MyBatis中传入参数parameterType类型详解 MyBatis是一款流行的持久层框架,它提供了一个灵活的方式来与数据库交互。在MyBatis中,parameterType类型是Mapper文件中的一个重要属性,它用于指定Mapper接口方法接受的...
当传入一个集合类型的参数时,MyBatis会将其封装成一个包含`collection`和`list`两个键的Map对象。具体实现如下: ```java private Object wrapCollection(Object object) { DefaultSqlSession.StrictMap map; if...
MyBatis动态SQL之Map参数的讲解 MyBatis动态SQL中参数类型可以是Map类型的,在实际开发中,我们经常需要在Mapper文件中传递Map参数,以实现动态SQL的构建。今天,我们将详细讲解MyBatis动态SQL之Map参数的使用。 ...
### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...
在MyBatis中,参数的传递方式有很多种,主要包括基本类型的参数、对象参数、多个参数以及使用注解的方式。下面将详细讲解这些方法及其注意事项。 1. 单个参数传入基本类型或直接传入类类型 当参数为基本类型如`...
在Mybatis框架中,mapper.xml文件是定义SQL语句、映射规则以及参数传递方式的重要组成部分。正确地使用parameterType传递参数对于开发高质量的应用程序至关重要。以下是几种常用的parameterType参数传递方式以及#和$...
MyBatis能够通过传入的参数动态生成SQL语句,这是通过OGNL(Object-Graph Navigation Language)表达式语言实现的。这种设计让MyBatis具有很好的灵活性和扩展性。参数映射是数据处理层的另一个重要功能,主要涉及...
MyBatis支持传入多个参数,可以通过`@Param`注解指定参数名。 1. Map参数示例: ```java Map, Object> params = new HashMap(); params.put("username", "John"); params.put("age", 30); List<User> users = ...
当调用SqlSession的`selectOne`、`selectList`、`insert`、`update`或`delete`方法时,都需要传入MappedStatement的ID来定位具体的SQL操作。 3. **Executor**:MyBatis提供了多种Executor执行器类型,包括...
视频中详细介绍了如何将传入的参数进行封装,特别是如何通过Map对象进行参数传递,以及在使用#和$进行参数取值时的区别。#{}用于防止SQL注入,而${}则会直接拼接SQL字符串。 2. **源码分析**:针对Mybatis的源码...
在DAO接口中,定义一个方法,接受一个List参数,该参数包含了所有要插入的数据。 ```java public interface SomeDAO { public void insertBatch(@Param("list") List<Student> students); } ``` 批量插入的...
1. **创建(CREATE)**: MyBatis提供插入数据的功能,可以通过定义一个INSERT语句,设置参数占位符,然后在Java代码中传递参数。例如,在Mapper接口中定义一个`insertUser`方法,对应XML中的INSERT语句,通过`@Param...
当多个参数对应业务逻辑的数据模型时,可以直接传入一个PoJO对象。在SQL中,通过`#{属性名}`来获取PoJO对象的属性值。 5. **Map参数**: 如果参数不是业务模型中的数据,可以使用Map来传递。在SQL中,通过`#{key}...