“mybatis 中使用foreach 传
为了帮助网友解决“mybatis 中使用foreach 传”相关的问题,中国学网通过互联网对“mybatis 中使用foreach 传”相关的解决方案进行了整理,用户详细问题包括:mybatismapsql
<update id="updateallByEntity" parameterType="java.util.List">
update T_WEEKDAY
<foreach item="item" index="index" collection="list" open="{" separator="," close="}">
<set>
<if test="item.workflag!=null ">
WORKFLAG=#{item.workflag,jdbcType=DECIMAL},
</if>
<if test="item.updateBy!=null ">
UPDATE_BY=#{item.updateBy,jdbcType=VARCHAR},
</if>
<if test="item.updateDate!=null ">
UPDATE_DATE=#{item.updateDate,jdbcType=TIMESTAMP},
</if>
</set>
<where>
<if test="item.weekdayId!=null ">
WEEKDAY_ID=#{item.weekdayId,jdbcType=DECIMAL},
</if>
</where>
</foreach>
</update>
传入的list的值为:
[{updateBy=21, weekdayId=1, updateDate=Thu Mar 26 22:36:44 CST 2015, workflag=1}, {updateBy=21, weekdayId=2, updateDate=Thu Mar 26 22:36:44 CST 2015, workflag=1}, {updateBy=21, weekdayId=3, updateDate=Thu Mar 26 22:36:44 CST 2015, workflag=1}, {updateBy=21, weekdayId=4, updateDate=Thu Mar 26 22:36:44 CST 2015, workflag=1}, {updateBy=21, weekdayId=5, updateDate=Thu Mar 26 22:36:44 CST 2015, workflag=1}, {updateBy=21, weekdayId=6, updateDate=Thu Mar 26 22:36:44 CST 2015, workflag=0}, {updateBy=21, weekdayId=7, updateDate=Thu Mar 26 22:36:44 CST 2015, workflag=1}]
报错:
org.springframework.jdbc.UncategorizedSQLException:
### Error updating database. Cause: java.sql.SQLException: 出现不支持的 SQL92 标记: 22:
### The error may involve com.bsth.si.mapper.WeekdayMapper.updateallByEntity-Inline
### The error occurred while setting parameters
### Cause: java.sql.SQLException: 出现不支持的 SQL92 标记: 22: ,具体解决方案如下:
解决方案1:
UPDATE_DATE=#{item.updateDate,jdbcType=TIMESTAMP},
你第12代码多个逗号吧,
直接把sql打印出来确认一下哪的错误
解决方案2:
Executing: update T_WEEKDAY SET ( WORKFLAG=?, UPDATE_BY=?, UPDATE_DATE=? WHERE WEEKDAY_ID=? ; WORKFLAG=?, UPDATE_BY=?, UPDATE_DATE=? WHERE WEEKDAY_ID=? ; WORKFLAG=?, UPDATE_BY=?, UPDATE_DATE=? WHERE WEEKDAY_ID=? ; WORKFLAG=?, UPDATE_BY=?, UPDATE_DATE=? WHERE WEEKDAY_ID=? ; WORKFLAG=?, UPDATE_BY=?, UPDATE_DATE=? WHERE WEEKDAY_ID=? ; WORKFLAG=?, UPDATE_BY=?, UPDATE_DATE=? WHERE WEEKDAY_ID=? ; WORKFLAG=?, UPDATE_BY=?, UPDATE_DATE=? WHERE WEEKDAY_ID=? )
现在是报缺失右括号
map如下:
<update id="updateallByEntity" parameterType="list">
update T_WEEKDAY
<set>
<foreach item="item" index="key" collection="list" open="(" separator=";" close=")">
WORKFLAG=#{item.workflag,jdbcType=DECIMAL},
UPDATE_BY=#{item.updateBy,jdbcType=VARCHAR},
UPDATE_DATE=#{item.updateDate,jdbcType=TIMESTAMP}
WHERE WEEKDAY_ID=#{item.weekdayId,jdbcType=DECIMAL}
</foreach>
</set>
</update>
求解啊,今天搞了一晚上了!
解决方案3:
http://bbs.csdn.net/topics/380234660
受以上贴子中最后一个人的回复,我解决了我,mybatis中使用foreach,批量update多个对象的问题。在此感谢:ypin2003
其实想通了,就很简单了,只要通过foreach直接把需要的多个update用begin end;包起来就可以实现批量更新了
例如:
<update id="updatesql" >
<foreach collection="list" item="item" open="begin" separator=";" close=";end;">
UPDATE A SET colC = #{item.c}
WHERE (colA = #{item.a} ADN colB = #{item.b})
</foreach>
</update>
“mybatis 中使用foreach 传的更多相关文章
- 基于mysql对mybatis中的foreach进行深入研究
鉴于上一篇博文一次修改mysql字段类型引发的技术探究提到的,要对foreach里面的collection相关的内容做一些介绍,今天就围绕foreach,做一些数据插入和查询相关的研究. 首先介绍一下 ...
- mybatis中的foreach条件参数过多时,#和$效率比较
在客户端查询都小于1秒. 测试: mybatis中in条件12.3万数据$ : 6051 ms# : 27045 ms 1.2万数据$ : 1154 ms# : 24387 ms 5 万数据$ : 2 ...
- Mybatis中的foreach
<delete id="deleteByParam"> DELETE FROM YZ_SECURITIES_CURRENCY WHERE ID IN <forea ...
- mybatis中的foreach方法
select t.service_id, t.prod_id, t.prod_name, t.prod_type, t.buss_type, t.pricing_fee, t.detail from ...
- Mybatis中的in查询和foreach标签
Mybatis中的foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach元素的属性主要有 item,index,collection,open,separato ...
- mybatis中foreach使用
mybatis中的<foreach collection="list" item="item" index="index" open= ...
- mybatis 中 foreach 的性能问题及调优
1.mybatis中最初的sql语句 SELECT 参数1, 参数2, 参数3 FROM 表 WHERE 条件参数1 in <foreach item="item" inde ...
- 谈一下思考,关于mybatis中<foreach collection="list">中list得来的原因 没看到官方说明
<foreach> 是在sql语句中进行多个id查询 时用到的,因为mybatis代替jdbc和hibernate, 使用 在xml文件中编写sql语句,这是一个标签文件.然后在 dao层 ...
- mybatis中foreach的用法(转)
foreach一共有三种类型,分别为List,[](array),Map三种. foreach属性 属性 描述 item 循环体中的具体对象.支持属性的点路径访问,如item.age,item.inf ...
随机推荐
- Yii日志记录Logging
.Yii::getLogger()->log($message, $level, $category = 'application') .Yii::trace($message, $catego ...
- 【BZOJ-4310】跳蚤 后缀数组 + ST表 + 二分
4310: 跳蚤 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 180 Solved: 83[Submit][Status][Discuss] De ...
- asp.net接收ajax请求参数时为空的现象
如题,如果使用ajax请求asp.net后台时,如果使用jquery时,默认是添加了请求头,使后台能识别,并能通过Request对象进行获取. 但是如果你使用的是window.XMLHttpReque ...
- CameraFlash手电筒
有时候晚上找不到电棒,电灯,咱们可以写个小程序,利用照相机的闪光灯临时顶替上代码: 1 package com.linux.cameraflash; import android.hardware.C ...
- dedecms /plus/feedback.php SQL Injection Vul
catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 . Dedecms v5.7的plus\feedback.php SQL ...
- Linux Process Management && Process Scheduling Principle
目录 . 引言 . 进程优先级 . 进程的生命周 . 进程表示 . 进程管理相关的系统调用 . 进程调度 . 完全公平调度类 . 实时调度类 . 调度器增强 . 小结 1. 引言 在多处理器系统中,可 ...
- 用jQuery调用微信api生成二维码
其实这个,也没什么实际用途,只能测试一下api能不能用. 1. 用Chrome打开一个https://api.weixin.qq.com/页面,会返回一个错误信息,忽略不管,F12打开控制台 2. 控 ...
- A.Kaw矩阵代数初步学习笔记 5. System of Equations
“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...
- mybatis报错Mapped Statements collection does not contain value for com.inter.IOper
首页 > 精品文库 > mybatis报错Mapped Statements collection does not contain value for com.inter.IOper m ...
- JavaScript中捕获/阻止捕获、冒泡/阻止冒泡
JavaScript中捕获/阻止捕获.冒泡/阻止冒泡 事件流描述的是从页面中接收事件的顺序.提出事件流概念的正是IE和Netscape,但是前者提出的是我们常用的事件冒泡流,而后者提出的是事件捕获流. ...