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 属性。
相关推荐
shuair4 分钟前
tomcat的accept-count、max-connections、max-threads三个参数的含义
java·tomcat
小池先生4 分钟前
记录让cursor帮我给ruoyi-vue后台管理项目整合mybatis-plus
前端·vue.js·mybatis
画船听雨眠aa6 分钟前
SSM项目本地Tomcat部署
java·tomcat
醇氧1 小时前
【mybatis】 插件 idea-mybatis-generator
java·intellij-idea·mybatis
雪芽蓝域zzs1 小时前
IDEA工具下载、配置和Tomcat配置
android·tomcat·intellij-idea
纸飞机√※14 小时前
windows下部署安装 ELK,nginx,tomcat日志分析
windows·nginx·elk·tomcat
sin220114 小时前
MyBatis-Plus的插件
java·mybatis
一个处女座的暖男程序猿17 小时前
MyBatis Plus 中常用的 Service 功能
linux·windows·mybatis
endcy201618 小时前
IoTDB结合Mybatis使用示例(增删查改自定义sql等)
java·mybatis·iotdb
leegong2311119 小时前
Oracle、PostgreSQL该学哪一个?
数据库·postgresql·oracle