一、若mybatis表主键为自增主键,在mapper文件中添加useGeneratedKey参数,可实现
insert(dto)后,dto.getId()=生成的自增主键。例如:
<insert id="insertDictInfo" useGeneratedKeys="true" keyProperty="id".....>
详细解释可看这篇文章:
MyBatis笔记:获取自增主键的值(Mysql)和非自增主键(Oracle)_yorkmass☭的博客-CSDN博客
二、若mybatis表的主键为非自增主键,即使指定useGeneratedKeys 参数,也会失效。即dto.getId()=null.解决方法为,使用selectKey参数,先通过selectKey参数获取ID值,再进行插入操作。例如:
<selectKey order="BEFORE" resultType="String" keyProperty="id">
select .....
</selectKey>
详细解释可看这篇文章: