错误

写一个批量更新的语句,接口里没用实体类,直接传入了​​Map<String, Object>​​:

update(List<Map<String, Object>> list);

在脚本里,更新一个​​datetime​​类型的字段,

UPDATE demo set time=#{time}

结果无法转化,出现错误:

org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible



解决

既然MyBatis转化不了,那么就考虑使用MySQL的日期转换函数。

  • STR_TO_DATE(str,format) :将字符串转化为日期。

示例:

SELECT STR_TO_DATE('01,5,2013','%d,%m,%Y');
-> '2013-05-01'

OK,使用这个函数将字符串格式的日期转化一下,问题解决:

UPDATE demo set time=STR_TO_DATE(#{time},'%Y-%m-%d')