使用mybatis-generator
当我们在项目中使用mybatis-generator插件需要获取插入记录的自增主键时,会使用如下方式
<table tableName="xx_table">
<property name="ignoreQualifiersAtRuntime" value="true"/>
<property name="modelOnly" value="false"/>
<generatedKey column="id" sqlStatement="JDBC" identity="true"/>
</table>
在Dao层的代码中,会使用如下方法获取id
int result = xxTableMapper.insertSelective(XxTable xxTable);
//result值代表更新的记录行数
System.out.println(result)
//获取自增的id
System.out.println(xxTable.getId())
需要注意:
mybatis-generator配置中generatedKey的属性为sqlStatement="MYSQL"时,对于直接连接数据库的应用可以直接获取到主键id, 如果在应用和数据库之间存在代理层,存在读写分离或者连接池分离的情况下,将无法获取到数据库的主键,建议使用jdbc。