Mysql 数据库具有一个表(ID bigint auto_increment主键xx),并且springboot代码如下:
@Insert({"insert into table(xx) " +
"values (#{xx}"})
@Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")
int save(Data data);
我们都知道,插入sql语言并不包含id字段,当我们指定 useGeneratedKeys = true,keyProperty =“ id” 时,我们调用保存方法,对象数据返回ID值(成功插入数据库并返回有效ID值)。
但是插入sql 只会返回受影响的行,为什么返回有效的data.id值?
如果mybatis没有来自mysql的第二个查询ID,分发系统如何确保从mybatis返回唯一ID?
mybatis如何实现它?
插入到sql后是否查询id?
插入sql 是否有两个请求数据库(第一个是插入数据库,第二个是查询id值)?