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

 更新时间:2022年01月23日 09:58:45   作者:pbyang5689  
这篇文章主要介绍了MyBatis如何使用selectKey返回主键的值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

使用selectKey返回主键的值

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

对于MySQL数据库

  <insert id="insert">
       insert into user(
       username, password, email, info, headImg, createTime)
       values(
       #{username}, #{password}, #{email},
       #{info}, #{headImg, jdbcType=BLOB},
       #{createTime, jdbcType=TIMESTAMP})
       <selectKey keyColumn="id" resultType="long" keyProperty="id" order="AFTER">
          SELECT LAST_INSERT_ID()
       </selectKey>     
   </insert>

通过selectkey返回insert或update后的值

实体类如下:

表结构如下:

其中varId为主键,但非自增

@selectKey使用

@selectKey

  • statement:指定查询的语句
  • keyProperty:指定结果对应的实体类的字段,如果是多个字段,采用逗号,分隔。如varId,varName,
  • keyColumn:指定stament语句返回的列明,与keyProperty对应,如果多个,采用逗号分隔。
  • resultType:返回值类型
  • before:ture,插入前执行,false插入后执行

插入时,如何查询当前最大id,并赋值给实体类,示例如下:

方案1

插入前,首先查询当前最大的id,并赋值给实体对象

如下:

方案2

插入时,获取当前最大值,插入

插入后,查询当前最大的id,并赋值给实体对象。

如下:

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

相关文章

  • java实现页面置换算法

    java实现页面置换算法

    这篇文章主要为大家详细介绍了java实现页面置换算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • SpringBoot集成Redis使用Cache缓存的实现方法

    SpringBoot集成Redis使用Cache缓存的实现方法

    SpringBoot通过配置RedisConfig类和使用Cache注解可以轻松集成Redis实现缓存,主要包括@EnableCaching开启缓存,自定义key生成器,改变序列化规则,以及配置RedisCacheManager,本文为使用SpringBoot与Redis处理缓存提供了详实的指导和示例,感兴趣的朋友一起看看吧
    2024-10-10
  • Java中使用While语句自增运算遍历数组典型实例

    Java中使用While语句自增运算遍历数组典型实例

    这篇文章主要介绍了Java中使用While语句自增运算遍历数组典型实例,本文直接给出实例代码,并对每一句代码都注解了详细注释,需要的朋友可以参考下
    2015-06-06
  • spring cache注解@Cacheable缓存穿透详解

    spring cache注解@Cacheable缓存穿透详解

    这篇文章主要介绍了spring cache注解@Cacheable缓存穿透详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java gui详解贪吃蛇小游戏实现流程

    java gui详解贪吃蛇小游戏实现流程

    刚开始学JAVA GUI,就练手写了一个小时候经常在诺基亚上玩的一个小游戏__贪吃蛇.做的比较简单,但还是可以玩的.感兴趣的朋友快来看看吧
    2021-11-11
  • Spring Security的持久化用户和授权实现方式

    Spring Security的持久化用户和授权实现方式

    文章介绍了如何使用JdbcUserDetailsManager实现数据库读取用户,并展示了如何配置SpringSecurity进行授权管理,通过创建数据库表、配置数据库连接和修改SecurityConfig,实现了用户权限的控制
    2025-02-02
  • Springboot Cucumber测试配置介绍详解

    Springboot Cucumber测试配置介绍详解

    这篇文章主要介绍了Springboot Cucumber测试配置介绍详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Java 线程池详解

    Java 线程池详解

    本文给大家总结了java中的线程池的相关问题,非常的详细也很实用,有需要的小伙伴可以参考下。
    2016-03-03
  • mybaties plus实体类设置typeHandler不生效的解决

    mybaties plus实体类设置typeHandler不生效的解决

    这篇文章主要介绍了mybaties plus实体类设置typeHandler不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • java拼接字符串时去掉最后一个多余逗号的方法

    java拼接字符串时去掉最后一个多余逗号的方法

    这篇文章主要介绍了java拼接字符串时去掉最后一个多余逗号的方法,实例分析了java操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03

最新评论