MyBatis 字符串参数被强制转换为数字

xhmlwaf 2017-02-15 10:58:57

sql配置如下:
<update id="batchUpdateSms" parameterType="java.util.List">
begin
<foreach collection="list" item="item" separator=";">
update T_SMS_HIS
<set>
STATUS_CODE=${item.statusCode}
</set>
where REC_UID = ${item.recUid}
AND MONTH = ${item.month}
</foreach>
;end;
</update>

其中 ${item.recUid} 在sql语句中被强制转换为数字,recUid本身定义为字符串,但是内容都是数字。不知道为什么会被强制转换为数字。
...全文
8690 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
usecf 2017-02-15
  • 打赏
  • 举报
回复
不客气,相互学习
xhmlwaf 2017-02-15
  • 打赏
  • 举报
回复
引用 5 楼 usecf 的回复:
你把${item.recUid,jdbcType=VARCHAR} 改成#{item.recUid,jdbcType=VARCHAR} 试试
可以了,粗心了,我后面也发现了,谢谢。
usecf 2017-02-15
  • 打赏
  • 举报
回复
你把${item.recUid,jdbcType=VARCHAR} 改成#{item.recUid,jdbcType=VARCHAR} 试试
xhmlwaf 2017-02-15
  • 打赏
  • 举报
回复
引用 3 楼 usecf 的回复:
你的list里面存放的是字符串还是整型
list里面放的是对象,其中两个字段recUid和month都是字符串类型,不过内容都是数字。
usecf 2017-02-15
  • 打赏
  • 举报
回复
你的list里面存放的是字符串还是整型
xhmlwaf 2017-02-15
  • 打赏
  • 举报
回复
引用 1 楼 usecf 的回复:
你把参数类型加上试试
sorry,有点忘了说,加上类型${item.recUid,jdbcType=VARCHAR} 之后会报错: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'VARCHAR' not found. Available parameters are [list]
usecf 2017-02-15
  • 打赏
  • 举报
回复
你把参数类型加上试试

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧