Mybatis获取自动生成的主键

Mybatis获取自动生成的主键

很多场景下,我们会把数据库主键设置成自增长的。
那么插入成功之后怎么在Java中获取到该主键的值呢?

1. INSERT语句

其实INSERT语句默认会返回一个整数值,这个整数值的含义是操作成功的行数。
例如:
成功插入一行记录,就会返回 1 。

同时 INSERT 语句中可以配置

useGeneratedKeys : 是否自动生成主键
keyProperty :主键对应的属性(Java类)
keyColumn : 主键对应的列(数据库列)

三个属性,来获取自动生成的主键

我们需要把
useGeneratedKeys 设置为 true
把 keyColumn 设置为数据库的自增长列名
把 keyProperty 设置为java类接收自增长主键的属性名

2. 示例

2.1 数据库表

随便设置了一个简单的表:
Mybatis获取自动生成的主键_第1张图片

2.2 Java类

Mybatis获取自动生成的主键_第2张图片

2.3 SQL映射文件

在这里插入图片描述useGeneratedKeys 设置为 true
把 keyColumn 设置为数据库的自增长列名
把 keyProperty 设置为java类接收自增长主键的属性名

代码块

<insert id="addStudent" useGeneratedKeys="true" keyProperty="id" keyColumn="id" parameterType="com.lqk.bean.Student">
        INSERT INTO student VALUES (#{id}, #{name}, #{university});
insert>

2.4 结果

测试代码

Mybatis获取自动生成的主键_第3张图片

直接让代码执行到断点处,观察 long l 和 student.id 的值

Mybatis获取自动生成的主键_第4张图片

去数据库验证:

可以看到已经成功

Mybatis获取自动生成的主键_第5张图片

总结

核心知识点:

useGeneratedKeys 设置为 true
把 keyColumn 设置为数据库的自增长列名
把 keyProperty 设置为java类接收自增长主键的属性名

你可能感兴趣的:(Mybatis,java,mybatis,mysql,sql,数据库)