MyBatis如何使用selectKey返回主键的值

目录

  • 使用selectKey返回主键的值
    • 对于MySQL数据库
  • 通过selectkey返回insert或update后的值
    • @selectKey使用
    • 方案1
    • 方案2

使用selectKey返回主键的值 使用标签来获取插入操作主键返回的值。

对于MySQL数据库
insert into user(username, password, email, info, headImg, createTime)values(#{username}, #{password}, #{email},#{info}, #{headImg, jdbcType=BLOB},#{createTime, jdbcType=TIMESTAMP})SELECT LAST_INSERT_ID()


通过selectkey返回insert或update后的值 实体类如下:
MyBatis如何使用selectKey返回主键的值
文章图片

表结构如下:
MyBatis如何使用selectKey返回主键的值
文章图片

其中varId为主键,但非自增

@selectKey使用
@selectKey
  • statement:指定查询的语句
  • keyProperty:指定结果对应的实体类的字段,如果是多个字段,采用逗号,分隔。如varId,varName,
  • keyColumn:指定stament语句返回的列明,与keyProperty对应,如果多个,采用逗号分隔。
  • resultType:返回值类型
  • before:ture,插入前执行,false插入后执行
插入时,如何查询当前最大id,并赋值给实体类,示例如下:

方案1
【MyBatis如何使用selectKey返回主键的值】插入前,首先查询当前最大的id,并赋值给实体对象
如下:
MyBatis如何使用selectKey返回主键的值
文章图片


方案2
插入时,获取当前最大值,插入
插入后,查询当前最大的id,并赋值给实体对象。
如下:
MyBatis如何使用selectKey返回主键的值
文章图片

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    推荐阅读