今写代码的时候突然好奇.mybatis在mysql中自增主键是如何赋值的?
mybatis在mysql自增主键使用: useGeneratedKeys=true 表示将自增主键返回给keyProperty="id",参考
https://www.cnblogs.com/nuccch/p/9069644.html
验证代码:
<!-- mysql新增 : mysql自增主键使用: useGeneratedKeys=true 表示将自增主键返回给keyProperty="id"-->
<insert id="save" parameterType="healthCkdAssessEntity"
useGeneratedKeys="true" keyProperty="id">
INSERT INTO
<include refid="tableName"/>
(
<include refid="addHealthCkdAssessColumns"/>
) VALUES (
<include refid="addHealthCkdAssessValue"/>
)
</insert>
@Test
public void healthTest() {
long date1 = new Date().getTime();
// 保存健康信息业务 start
HealthMemberInfoEntity entity= HealthUtil.toHealthMemberInfo(memberInfoVo);
boolean entityBoo = memberMapper.save(entity);
Assert.assertTrue(entityBoo);
Assert.assertNotNull(entity.getId());
}
首先,
使用H2数据库.准备3条数据,主键id分别为1,2,3;
断点调试.save之前;
Assert.assertNull(entity.getId());
断点调试.save之后;
Assert.assertTrue(entity.getId()==4);
在来,
使用H2数据库.准备3条数据,主键id分别为1,2,89;
断点调试.save之前;
Assert.assertNull(entity.getId());
断点调试.save之后;
Assert.assertTrue(entity.getId()==90);
结论:
mybatis在mysql中自增主键 = 最大主键值+1