今天开发途中遇到一个很奇怪的bug,前端传来一个小数值0.5,java使用mybatis后存到数据库时变为了1。我看了下数据库这个字段的类型是double,这个肯定不会错,然后给了个默认值是1。所以这种情况我肯定先想到的是:
-
是不是前端传来的值用java DTO接收时那个值没设置进去,Double类型的该字段为null,所以插入记录到mysql时,由 于该字段没值,所以使用默认值1;
- 是不是Entity里没有getter和setter?---代码生成+检查——>排除。
- 数据库建表时字段问题?
排除了第一种和第二种,那么问题就出在字段设置上了。
原来是忽略了小数点后的问题,设置为0了才导致的问题。
改为 9 2 后完美解决。