关于数据库id自增太长导致前端获取id不准确

一:问题描述

有时候我们开发前后端分离项目会出现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)删除表结构和表数据重新建表

经验分享 程序员 微信小程序 职场和发展