- 问题描述
持久层使用Mybatis和Mysql数据库进行数据交互。更新表的时候报错。
sql语句:
<update id="flushConnStatu">
update ovpn_client_list set status = #{status} where id = #{deviceid}
</update>
报错log
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value
- 解决方法
网上查了一些资料,有些说把SQL语句中的and改为逗号的,但是我遇到的不是这个问题,以下提供一种本人遇到的情况的解决方案,供参考。
可能是sql语句的问题。id = #{deviceid} 这段sql没有对应上resultMap映射里的property和column。(还有一种可能是id的类型是int ,而deviceid的类型是String导致的)。可以都排查一下。
修改完成后,紧接着又报错。
Caused by: org.apache.ibatis.binding.BindingException: Parameter 'connStatu' not found. Available parameters are [id, param1, status, param2]
这个是参数没有绑定成功。查看dao或者mapper是否使用@Param注解绑定。
void flushConnStatu(@Param("status")Integer status ,@Param("id")Integer id);
很少使用,小问题比较多。