(1)通过属性进行获取
属性 描述
useGeneratedKeys 为 true 则返回主键的值
keyProperty 实体类中属性名
keyColumn 数据库主键字段名(如果id是第一列可以省略不写)
<!-- useGeneratedKeys 是否使用自动生成的主键 默认为false -->
<!-- keyProperty 传入对象保存主键的属性名 -->
<!-- keyColumn 结果集中主键列的名字 如果 主键为第一列可以省略 -->
<!-- 在执行添加后会自动将新增数据的主键赋值给对对应参数的对应属性值 -->
<insert id="insertUser" parameterType="user" useGeneratedKeys="true" keyProperty="uid" keyColumn="uid">
insert into user (uusername,upassword) values (#{uusername},#{upassword})
</insert>
(2)通过selectKey标签进行获取
属性 描述
resultType 查询主键结果类型,可以不写会自动识别
order BEFORE 或 AFTER。指定sql执行的顺序
keyProperty 实体类中属性名
keyColumn 数据库主键字段名(如果id是第一列可以省略不写)
<insert id="insertUser" parameterType="user">
/*
resultType 查询返回的结果
keyProperty 传入对象保存数据的属性
keyColumn 查询结果主键的列名
order 执行查询语句在其他语句的时间 after之后 befor之前
*/
<selectKey resultType="int" keyColumn="uid" keyProperty="uid" order="AFTER">
SELECT LAST_INSERT_ID() as uid
</selectKey>
insert into user (uusername,upassword) values (#{uusername},#{upassword})
</insert>