两个类
//
public class ShopBean{
private Integer shopId;
private List<BaseBean> shopList;
private String[] shopArray;
//get method
//set method
}
//基类
public class BaseBean{
private Integer shopId;
private Integer shopName;
private String shopAddress;
//get method
//set method
}
当传入参数为 ShopBean,foreach 访问 List ,
需要设置 collection="shopList",与ShopBean中参数名对应。
遍历每一个 BaseBean ,设置item="item",这里可以任意,
表示遍历的当前BaseBean对象,要访问BaseBean 中的对象 直接 item.shopId
<select id="searchMaxSaleProduct" resultType="ShopBean" parameterType="ShopBean" >
SELECT TOP 1
T1.shopId AS ShopId
FROM
dbo.T_Sale T1
WHERE
ShopId IN
<foreach collection="shopList" item="item" open="(" separator="," close=")">
#{item.shopId}
</foreach>
</select>
遍历 Array
<select id="searchMaxSaleProduct" resultType="ShopBean" parameterType="ShopBean" >
SELECT TOP 1
T1.shopId AS ShopId
FROM
dbo.T_Sale T1
WHERE
ShopId IN
<foreach collection="shopArray" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
分享到:
相关推荐
"Mybatis调用Oracle存储过程传List参数解决方法" Mybatis是当前最流行的持久层框架之一,它提供了强大的数据访问和操作功能。但是,如何将List类型参数传递给Oracle存储过程,实现批量插入数据却是一个棘手的问题,...
在MyBatis中,处理集合参数如list、array以及map是非常常见的操作。这些参数通常用于构建动态SQL,特别是当需要在`IN`语句中使用多个值时。下面将详细解释如何在MyBatis中使用这些参数类型。 1. **List参数**: 当...
在Mybatis框架中,mapper.xml文件是定义SQL语句、映射规则以及参数传递方式的重要组成部分。正确地使用parameterType传递参数对于开发高质量的应用程序至关重要。以下是几种常用的parameterType参数传递方式以及#和$...
当传入一个集合类型的参数时,MyBatis会将其封装成一个包含`collection`和`list`两个键的Map对象。具体实现如下: ```java private Object wrapCollection(Object object) { DefaultSqlSession.StrictMap map; if...
MyBatis拦截器实现通用权限字段添加的方法 MyBatis拦截器是一种非常实用的技术,可以用来实现各种复杂的数据库操作。本文将详细介绍如何使用MyBatis拦截器来实现通用权限字段添加,达到灵活、可靠、可维护的数据库...
集合(List、Set)或数组也会被封装到Map中,键名分别为`collection`、`list`或`array`。例如,`List<Integer> ids`,在SQL中可以通过`#{list[0]}`来获取第一个元素的值。 8. **参数值的获取**: - `#{}`:以预...
此过程涉及使用`StructDescriptor`和`ArrayDescriptor`创建描述符,然后使用这些描述符构建`STRUCT`和`ARRAY`对象,最终作为参数传递给存储过程。 ```java private static ARRAY getOracleArray(Connection con, ...
MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm...
在MyBatis中,`<foreach>`标签是一个非常重要的元素,它主要用于动态SQL语句的构建,尤其是在处理集合数据类型如List、Array、Map时。`<foreach>`标签的使用可以极大地提高代码的可读性和可维护性,避免了传统的字符...
在处理复杂数据传输时,MyBatis 提供了处理 List 和 Array 类型参数的方法。本文将详细讲解如何在 MyBatis 中实现通过 List 或 Array 传递参数来执行查询操作。 首先,当查询的参数只有一个,如一个 List<Long> 或 ...
在MyBatis中,我们可以将List实例或数组作为参数对象传递给Mapper。MyBatis会自动将其包装在一个Map中,并以名称为键。List实例将会以“list”作为键,而数组实例的键将是“array”。 2. 使用foreach循环容器的标签...
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程,它可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。...
- **当传入参数是一个List时**: ```xml <select id="findUsersByIds" parameterType="java.util.List"> SELECT * FROM users WHERE id IN <foreach item="item" index="index" collection="list" open="(" ...
情况三:传入的参数是多个时,我们需要把它们封装成一个 Map,collection 属性的值就是传入的 List 或 array 对象在自己封装的 Map 里面的 key。 foreach 语句是 MyBatis 中一个非常有用的语句,它可以帮助我们简洁...
当collection属性设置为list时,参数类型为集合。 需要注意的是,无论MyBatis是与MySQL数据库结合还是与Oracle数据库,都是适合使用上面的设置和操作的。 MyBatis的批量删除功能可以帮助我们快速高效地实现多表的...
因此,如果你的`<foreach>`标签中`collection`属性设置为`list`或`array`,MyBatis会尝试从传递的参数中找到相应的键。如果找不到,就会抛出“_frch_item_0 not found”的错误。 解决这个问题的方法包括: - 检查...
- 如果传入的是单参数且参数类型是一个`Array`,则默认使用`array`作为`Array`对象的键。 - 如果传入的参数是多个,可以封装到一个`Map`中,但是`Map`对象没有默认的键,必须使用`@Param`注解指定`collection`的键。...
如果参数的类型是Array,则在使用时,collection属性要必须指定为array。 2. 当查询的参数有多个时,需要使用注解Param指定key值,否则都会使用数字开头。 3. 在使用MyBatis foreach collection时,需要特别注意...
public List<Sys_user> selectByPageCondition(Map, Object> map) { int pageNo = Integer.parseInt(map.get("pageNo").toString()); int pageSize = Integer.parseInt(map.get("pageSize").toString()); ...