1.需求分析
在项目开发中往往会遇到这样的情况,往数据库里面插入数据,需要立马获得该数据的自增id,例如添加用户数据后,要立刻添加用户角色关系的数据。这个时候一般的做法就会再去查询该数据获得id,这样往往会增加数据库的压力,同时查询条件不一定是唯一标识符,影响准确性。
2.推荐方法
思路是将主键值注入到实体类对应的属性。在mybatis框架中,在mapper中指定keyProperty属性,例如:
<insert id="insertRole" parameter="UmRole" useGeneratedKeys="true" keyProperty="roleId">
insert into um_role(role_name,update_time,is_valid)
values(#{userName},#{updateTime},#{isValid})
</insert>
如上所示,我们添加了useGeneratedKeys="true" keyProperty="roleId",其中roleId为role表的自增主键属性。
3.使用实践
//添加角色
UmRole umRole=new UmRole();
umRole.setRoleName(roleName);
umRole.setUpdateTime(updateTime);
umRole.setIsValid(isValid);
umRoleMapper.i