概述
很多时候, 我们的数据库表是主键自增
的, 我们在插入操作执行前无法获取到这个行的主键值, 所以我们可以用MyBatis的主键回填
来获取到我们刚刚插入的行在数据库中的主键值.
配置
<insert id="insertRole" parameterType="role" useGeneratedKeys="true" keyProperty="id">
insert into t_role(role_name, note) values(#{roleName}, #{note})
</insert>
useGeneratedKeys
: 是否利用JDBC中的getGeneratedkeys
方法来获取插入的行的主键值.
keyProperty
: 哪个列作为属性的主键.
编写代码插入
Role role = new Role();
role.setRoleName("NormalUser");
role.setNote("This is a normal user");
mapper.insertRole(role);
System.out.println(role);
控制台输出内容
Role{id=3, roleName='NormalUser', note='This is a normal user'}
我们新插入的行的id是3.