一:问题描述
有时候我们开发前后端分离项目会出现swagger上面数据和前端获取到的数据出现不同,找半天也找不到原因。如果你能将问题定位到是精度丢失,那么我下面的方法将会为你解决这个问题。
二、明确问题出现原因
(1)是使用了mybatisPlus进行insert导致
(2)自己写sql导致
1、使用mybatisPlus导致问题出现
解决步骤:1、先将数据库数据清除
2、使用注解让mybatisPlus自动生成id失效,让其走默认数据库id自增 如图:
若以上方法不能解决则需要确认数据库是否开启自增,数据库之前数据是否已删除并保存,项目是否重启,问题的定位是否准确
2、自己写sql导致
解决方式:认真检查SQL和数据库id长度
3、修改数据类型后端将其转化为Sting(补充1)
操作步骤:使用String类型接收参数
存在弊端:当多处使用id时需要在所有使用的地方都进行数据类型转化
4、id不自增(拓展)
解决方式:在数据库中给id设置自增如图:
5、其他解决方式(不能精确定位就挨着试试吧)
(1):点击设计表选中id选择选项输入自动递增(先将表数据清空)
(2)运行SQL命令
ALTER TABLE 表名 AUTO_INCREMENT = 自增值;
(3)先清空表然后截断表
(4)删除表结构和表数据重新建表