关于“The error occurred while applying a parameter map.”的问题,
今天我也写一点,那就是找准改错的方向,不然小错费大事
我今天的错误:如下
更新userMain失败org.springframework.jdbc.BadSqlGrammarException: SqlMapClient operation;
bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/hunai/pojo/sqlmap/umUserMain-sqlmap.xml.
--- The error occurred while applying a parameter map.
--- Check the UserMain.updateUmPwd-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where mum.UM_UserID=37' at line 1
出错地方:
<update id="UserMain.updateUmPwd">
<![CDATA[
update
mi_user_main mum
set
mum.UM_Pwd=#1#,
where
mum.UM_UserID=#2#
]]>
</update>
遇到“The error occurred while applying a parameter map”这种错误,首先想到的是字段对应的错误,
但是像这种低价错误,iBATIS会很明确的指出出错的地方的。
这种想法应该排除的。
不过上面很明显说是bad SQL grammar ;
那就把这个语句粘贴到数据库做个测试,不能去瞎找,我今天就犯了很大的错误,
没有寻本求源,总感觉sql语法不会有问题,就去瞎忙活,看下传参是否出错呀,之类的,整了老半天,
最后实在想不出是什么地方出错,就到数据库测试语句,果然,根本性的原因还是sql语句,多了一个逗号
set
mum.UM_Pwd=#1#,
唉,真是惭愧呀,这么低级的错误本不该发生,可是,发生了,会让人很苦恼。
所以,方向与方法非常重要,少走弯路。