mysql主键使用自增,由于某些需求,在插入一条记录时就需知道该记录的id值,原本使用查询语句:
SELECT auto_increment FROM information_schema.
TABLESWHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME=表名;
这样可以提前知道下一个自增的id值。完成一次插入时没有问题,但是进行第二次插入数据时发现id值没有增加,导致数据库报错重复的主键值。
具体的原因还不清楚,但是找到了解决方法。数据库底层使用的是MyBatis框架,框架提供了这个功能,具体使用:在方法上添加@Options注解
@Insert("insert into 。。。")
@Options(useGeneratedKeys = true,keyProperty = "表名.列名")
void addHouse(@Param("pojo") Pojo pojo);