在执行insert语句后,如果希望直接返回的实体类携带了生成的自增id,就需要在sql语句中指定useGeneratedKeys和keyProperty属性值。
<!--
所有数据库通用,插入成功返回最近一次插入的id
它会将id直接赋值到对应的实体当中
YyghDdxx yyghddxx = new YyghDdxx();
OrderMapper.insert(YyghDdxx record);
int pk = yyghddxx.getId(); // 这就是我们的主键id
-->
<insert id="insert" parameterType="com.order.model.YyghDdxx" useGeneratedKeys="true"
keyColumn="ID" keyProperty="id">
insert into Yygh_Ddxx(ID,name, age,phonenumber)
values(#{id,jdbcType=int}, #{name,jdbcType=VARCHAR},{age,jdbcType=int},{phonenumber,jdbcType=VARCHAR})
</insert>
一、insert 属性详解
parameterType ,入参的全限定类名或类型别名
keyColumn ,设置数据表自动生成的主键名。对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置
keyProperty ,默认值unset,用于设置getGeneratedKeys方法或selectKey子元素返回值将赋值到领域模型的哪个属性中
useGeneratedKeys ,取值范围true|false(默认值),设置是否使用JDBC

在MyBatis中,通过设置useGeneratedKeys和keyProperty属性,可以在执行插入操作后,使返回的实体对象包含生成的自增主键。parameterType定义输入参数类型,keyColumn指定自增主键列,keyProperty设定返回值映射的属性。当数据库支持时,useGeneratedKeys启用获取自增键功能。
最低0.47元/天 解锁文章
2788

被折叠的 条评论
为什么被折叠?



