Mybatis - useGeneratedKeys 和 keyProperty,获取插入主键自动生成的 Id

<insert id="insertOrder" parameterType="com.buchstadt.params.PayForData" useGeneratedKeys="true"
        keyProperty="id">
    INSERT INTO orders(user_id, total, location, holder_phone, holder_name)
    VALUES (#{user_id}, #{total}, #{location}, #{holderPhone}, #{holderName})
</insert>
  1. useGeneratedKeys:用于指示是否使用数据库生成的主键值。如果设置为 true,那么数据库会自动生成主键值,通常是通过数据库的自增字段实现。如果设置为 false,则不会使用数据库生成的主键值。
  2. keyProperty:用于指定一个 Java 对象的属性名,这个属性会用来存储数据库生成的主键值。该属性需要与实体类的属性名对应。

如上 xml 代码块,插入语句中参数类型是 PayForData 实体类:

@Data
public class PayVo {
    private Integer id;
    private Integer uid;
    private Double total;
    private String location;
    private String holderPhone;
    private String holderName;
}

keyProperty 设置的就是这个实体类的某一个属性。在使用 mybatis 插入这条数据之后,这个实体类 id 就会有值了,就可以获取到数据库自增 id 的值,可以进入下一个事务。

posted @   Himmelbleu  阅读(15)  评论(0编辑  收藏  举报
首页
随笔
博客园
我的
标签
管理
Mybatis - useGeneratedKeys 和 keyProperty,获取插入主键自动生成的 Id
发表于 2023-08-29 16:33
|
已有 15 人阅读
|
留下 0 条评论
|
全文字数 ≈ 77字
XML
<insert id="insertOrder" parameterType="com.buchstadt.params.PayForData" useGeneratedKeys="true"
        keyProperty="id">
    INSERT INTO orders(user_id, total, location, holder_phone, holder_name)
    VALUES (#{user_id}, #{total}, #{location}, #{holderPhone}, #{holderName})
</insert>
  1. useGeneratedKeys:用于指示是否使用数据库生成的主键值。如果设置为 true,那么数据库会自动生成主键值,通常是通过数据库的自增字段实现。如果设置为 false,则不会使用数据库生成的主键值。
  2. keyProperty:用于指定一个 Java 对象的属性名,这个属性会用来存储数据库生成的主键值。该属性需要与实体类的属性名对应。

如上 xml 代码块,插入语句中参数类型是 PayForData 实体类:

JAVA
@Data
public class PayVo {
    private Integer id;
    private Integer uid;
    private Double total;
    private String location;
    private String holderPhone;
    private String holderName;
}

keyProperty 设置的就是这个实体类的某一个属性。在使用 mybatis 插入这条数据之后,这个实体类 id 就会有值了,就可以获取到数据库自增 id 的值,可以进入下一个事务。

作者:Himmelbleu
出处: https://www.cnblogs.com/Himmelbleu/#/p/17665226
版权:本作品采用「 署名-非商业性使用-相同方式共享 4.0 国际 」许可协议进行许可。
点击右上角即可分享
微信分享提示