mybatis在insert时返回主键需要额外设置哪些属性
时间: 2023-09-04 16:04:03 浏览: 151
在MyBatis中实现插入数据并返回主键需要额外设置以下属性:
1. 在Mapper映射文件中,需要将<insert>标签的useGeneratedKeys属性设置为true,表示启用数据库的自动生成主键功能。
示例:
<insert id="insertUser" parameterType="User" useGeneratedKeys="true">
<!-- 插入数据的SQL语句 -->
</insert>
2. 同时,还需要在<insert>标签下添加一个<selectKey>子标签,用于指定用于获取自动生成主键的相关配置。
示例:
<insert id="insertUser" parameterType="User" useGeneratedKeys="true">
<selectKey order="AFTER" keyProperty="id" resultType="java.lang.Long">
SELECT LAST_INSERT_ID()
</selectKey>
<!-- 插入数据的SQL语句 -->
</insert>
其中,order属性表示在插入数据之后执行获取主键的SQL语句,keyProperty属性指定将获取到的主键值设置到插入的实体类的哪个字段中,resultType属性指定返回值的类型。
3. 在实体类中,需要定义一个Long类型的字段用于存储返回的自动生成主键值,并提供setter和getter方法。
示例:
public class User {
private Long id;
// 其他属性和方法
// ...
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
通过以上设置,插入数据时,MyBatis会自动调用数据库的自动生成主键功能,并将生成的主键值赋值给实体类的id字段,以便后续使用。
阅读全文