在做插入用户操作的时候,有时经常会拿当前插入的用户设置一些权限信息,这是需要拿到当前插入用户的id,由于数据库中 id 一般都是递增的字段,所以 Mybatis 提供了方法能够取到:
这是一句简单的插入 sql 语句,不同的是此语句多了两个字段,一个是 keyProperty 另一个是 userGeneratedKeys
<insert id="addUser" parameterType="com.xxxx.qcby.entity.User" keyProperty="id" useGeneratedKeys="true">
insert into t_user(user_name, password, sex)
values (#{user.userName}, #{user.password}, #{user.sex});
</insert>
keyProperty 的意思是:keyProperty 取id的key值,主要是在主键是自增的情况下,添加成功后可以直接使用主键值,其中keyProperty的值是对象的属性值不是数据库表中的字段名。
useGeneratedKeys 的意思是:useGeneratedKeys 参数只针对 insert 语句生效,默认为 false。当设置为 true 时,表示如果插入的表以自增列为主键,则允许 JDBC 支持自动生成主键,并可将自动生成的主键返回。