`
- 浏览:
967 次
- 性别:
- 来自:
北京
-
[size=x-small]
一、 当集合为map对象的数据
@service.java
map.put("ordDd", ordDd);
map.put("consignee", shr);
map.put("shdh", shdh);
map.put("shdz", shdz);
map.put("opType", opType);
map.put("useHosp", useHosp);
map.put("username", username);
//将要保存的表头数据放入 定义好的集合中
listMap.add(map);
sqlId = "com.ifm.mappers.accept.accept.insertTHTemReady_insert";
if(listMap != null && listMap.size()>0){
mapcs.put("listMap", listMap);
dao.insert(sqlId, mapcs);
@Mybatis
<insert id="insertTHTemReady_insert" parameterType="map">
INSERT INTO
MF_POS_SO_TMP (
BIL_TYPE,
rem,
cus_no,
cus_name,
sal_no,
OS_NO,
OS_DD,
CON_MAN,
CON_MAN_PHONE,
addr,
op_type,
op_hos,
OPERATOR
)
VALUES
<foreach collection="listMap" item="item" index="index" separator=",">
(
'${item.bilType}',
'${item.rem}',
'${item.cusNo}','${item.cusName}','${item.salNo}'
,'${item.ordNo}',#{item.ordDd},'${item.consignee}','${item.shdh}',
'${item.shdz}','${item.opType}','${item.useHosp}','${item.username}'
)
</foreach>
一、 当集合为list对象的集合
@service.java
List<String> cusNoList = new ArrayList<String>(wdrList.size());
//可获取单号集合
List<String> ordNoList = new ArrayList<String>(wdrList.size());
/// 定义订单日期
ordDd = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
if (wdrList != null && wdrList.size() > 0) {
//遍历查询结果
for (getDsptWdrOrderBean ordBean : wdrList) {
ordNo = ordBean.getOrderCode();
ordNoList.add(ordNo);
cusNo = ordBean.getCusNo();
cusNoList.add(cusNo);
}
mapcs.put("ordNoList", ordNoList);
sqlId = "com.ifm.mappers.accept.accept.selectcusName_select";
mapcs.put("cusNoList", cusNoList);
@Mybatis
<select id="selectcusName_select" parameterType="map"
resultType="com.ifm.mvc.annotation.bean.SumAmtCreLimiTempBean">
SELECT
NAME name,
CUS_NO cusNo
FROM
CUST
WHERE
1=1
<if test="cusNoList != null and cusNoList !=''">
and CUS_NO in
<foreach collection="cusNoList" item="cusNo" open="(" close=")" separator=",">
#{cusNo}
</foreach>
</if>[/size]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Mybatis 中的 foreach 标签是一个功能强大的工具,允许开发者在 SQL 语句中循环遍历集合对象。但是,在使用 foreach 标签时,经常会遇到空格、换行、回车问题,这些问题会导致 SQL 语句执行失败或返回错误的结果。 ...
注意,`<if>`标签用于判断`tags`是否为空或者其大小是否大于0,以决定是否需要执行`<foreach>`循环。这是因为如果用户没有选择任何标签,我们不希望生成任何`OR`条件,否则会导致查询结果不正确。 在实际开发中,你...
- `foreach`标签用于循环遍历集合,并将其内容插入到SQL语句中。它的主要属性包括: - `item`:当前元素的别名。 - `index`:当前元素的索引。 - `collection`:需要遍历的集合。 - `open`:循环开始时的字符串...
例如,可以使用`<if>`, `<choose>`, `<when>`, `<otherwise>`, `<where>`, `<foreach>`等标签进行条件判断和循环处理。 2. **结果映射**:MyBatis提供了强大的结果映射机制,能够自动将查询结果转换为Java对象。...
- **foreach**:循环遍历集合或数组,常用于IN子句或者批量操作。 #### 六、缓存机制 - **一级缓存**:默认开启,生命周期与SqlSession相同,主要用于减少数据库访问次数,提高性能。 - **二级缓存**:全局级别缓存...
`foreach`标签是MyBatis提供的循环构造SQL语句的工具,它可以迭代任何集合类型的数据,包括List、Set等。`collection`属性的值取决于传入参数的类型,例如: - 如果是List,`collection`应为`list` - 如果是数组...
在这个例子中,`insertBatch` 方法接受一个`List` 类型的参数,`foreach` 循环遍历列表,将每个元素插入到`TStudent` 表中。 ### 2. MyBatis `ExecutorType.BATCH` MyBatis 提供了三种执行器类型:`SIMPLE`、`...
MyBatis的动态SQL功能非常强大,通过`<if>`, `<choose>`, `<when>`, `<otherwise>`, `<foreach>`等标签,可以在XML映射文件中实现条件判断和循环,从而编写出灵活多变的SQL语句。 7. **SqlSession与Executor**: ...
`<foreach>`元素则常用于遍历集合,生成IN语句或者其他循环结构的SQL片段。 在“myBatis_Cache_Dynamic.rar”这个压缩包中,可能包含了关于如何配置和使用MyBatis缓存以及动态SQL的示例代码。可能包括了Mapper接口...
- **foreach**:循环处理集合或数组,常用于IN子句。 #### 九、Java API - **应用目录结构**:介绍项目结构组织方式。 - **SqlSessions**:详细解释`SqlSession`的使用方法及其生命周期管理。 - **...
这种方法可以摆脱Mybatis批量插入数据的诸多限制,例如不能实时返回主键、foreach标签循环集合长度有限制等问题,并且可以灵活地控制事务回滚。 结论 使用Mybatis传List参数调用Oracle存储过程,可以实现批量插入...
5. **动态SQL**:MyBatis的动态SQL功能强大,可以在XML映射文件中使用if、choose、when、otherwise、where、set、foreach等元素,实现条件拼接、循环等复杂逻辑。 6. **参数映射和结果映射**:MyBatis通过`@Param`...