mybatis中的useGeneratedKeys和keyProperty

在 MyBatis 中,<insert> 标签用于定义插入数据的 SQL 语句。useGeneratedKeyskeyProperty 属性:常用于获取数据库自动生成的主键。以下是这两个属性的详细解释:

useGeneratedKeys

  • 作用: 指示 MyBatis 是否 使用JDBC 的 getGeneratedKeys 方法来获取数据库表自动生成的主键值
  • 值: 可以是 truefalse

keyProperty

  • 作用: 将数据库表自动生成的主键值 赋值 给传入的Java 对象的哪个属性
  • 值: Java 对象的属性名。

示例代码

xml 复制代码
<insert id="insertUser" useGeneratedKeys="true" keyProperty="id">
    insert into user(openid, name, phone, sex, id_number, avatar, create_time)
    values (#{openid}, #{name}, #{phone}, #{sex}, #{idNumber}, #{avatar}, #{createTime})
</insert>

代码解释

  1. useGeneratedKeys="true":

    • 表示 MyBatis 在执行插入操作后,会调用 JDBC 的 getGeneratedKeys 方法获取数据库生成的主键值。
  2. keyProperty="id":

    • 指定生成的主键值将赋值给传入的 Java 对象的 id 属性。

工作流程

  1. 执行插入 SQL 语句。
  2. 数据库生成一个新主键值(如自增 ID)。
  3. MyBatis 使用 getGeneratedKeys 方法获取生成的主键值。
  4. 将生成的主键值赋值给对应 Java 对象的 id 属性。
相关推荐
不羁。。1 小时前
【撸靶笔记】第八关:GET - Blind - Boolian Based - Single Quotes
数据库·sql·mybatis
AwhiteV2 小时前
利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
数据库·人工智能·自然语言处理·oracle·大模型·text2sql
西红柿维生素8 小时前
MyBatis SqlCommand+MethodSignature源码探究
mybatis
你想考研啊14 小时前
部署tomcat应用时注意事项
java·tomcat
不羁。。1 天前
【撸靶笔记】第七关:GET - Dump into outfile - String
数据库·笔记·oracle
黑客影儿1 天前
Java技术总监的成长之路(技术干货分享)
java·jvm·后端·程序人生·spring·tomcat·maven
杨云龙UP1 天前
CentOS Linux 7 (Core)上部署Oracle 11g、19C RAC详细图文教程
数据库·oracle
我科绝伦(Huanhuan Zhou)1 天前
银河麒麟V10一键安装Oracle 11g脚本分享
数据库·oracle
Fireworkitte2 天前
Tomcat 的核心脚本catalina.sh 和 startup.sh的关系
java·tomcat
kura_tsuki2 天前
[Oracle数据库] Oracle 常用函数
数据库·oracle