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 属性。
相关推荐
凌辰揽月2 小时前
8分钟讲完 Tomcat架构及工作原理
java·架构·tomcat
cpsvps3 小时前
触发器设计美国VPS:优化数据库性能的关键策略
数据库·oracle
一只猿Hou6 小时前
java分页插件| MyBatis-Plus分页 vs PageHelper分页:全面对比与最佳实践
java·mybatis
Zz_waiting.6 小时前
Javaweb - 10.1 Servlet
servlet·tomcat·javaweb
旷世奇才李先生6 小时前
Tomcat 安装使用教程
java·tomcat
我科绝伦(Huanhuan Zhou)10 天前
Oracle|Oracle SQL*Plus 配置上下翻页功能
数据库·sql·oracle
java—大象10 天前
基于java SSM的房屋租赁系统设计和实现
java·开发语言·数据库·spring boot·layui·mybatis
Mutig_s10 天前
Spring Boot动态数据源切换:优雅实现多数据源管理
java·数据库·spring boot·后端·mybatis
曹牧10 天前
Oracle获取前100条记录
数据库·oracle