1.mybatis参数格式化异常导致,例如在动态sql拼接中String类型参数和数字比较。
Error querying database. Cause: java.lang.NumberFormatException: For input string:
<if test="param.xxx!= '2'">
mybatis自动转化成char类型,char与string类型进行比较产生错误。
其中xxx为String类型,加单引号mybatis会认为String和char比较,也会导致报错
解决方法:
用toString()转成字符串, ‘2’.toString()
改为双引号"2",外层使用单引号。
<if test='param.xxx!= "2"'>
2.精度丢失问题
后端传到前端的数据精度丢失,因为long的位数是64位,而js只能承载17位,多余的位数会被舍弃掉。所以只要在后端将传递出的数据转成string就行。
解决办法:
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
MyBatis参数格式化问题
本文探讨了MyBatis中参数格式化异常的问题及解决方案,包括动态SQL中字符串类型参数与数字比较导致的错误及精度丢失问题,并提供了解决方法。
1041

被折叠的 条评论
为什么被折叠?



