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,并赋值给实体对象。

如下:

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

相关文章

  • Spring Boot指定外部配置文件简单示例

    Spring Boot指定外部配置文件简单示例

    Spring Boot可以让你将配置外部化,这样你就可以在不同的环境中使用相同的应用程序代码,这篇文章主要给大家介绍了关于Spring Boot指定外部配置文件的相关资料,需要的朋友可以参考下
    2024-01-01
  • Java将集合List转换成String字符串(或String转换成List)详解

    Java将集合List转换成String字符串(或String转换成List)详解

    今天在写项目的时候遇到一个问题,就是要把得到的一个集合转换成字符串,下面这篇文章主要给大家介绍了关于Java将集合List转换成String字符串(或String转换成List)的相关资料,需要的朋友可以参考下
    2023-06-06
  • Java编程中的vector类用法学习笔记

    Java编程中的vector类用法学习笔记

    Vector通常被用来实现动态数组,即可实现自动增长的对象数组,和C++一样vector类同样被Java内置,下面就来看一下vector类的基本用法.
    2016-05-05
  • Java之ThreadLocal使用常见和方式案例讲解

    Java之ThreadLocal使用常见和方式案例讲解

    这篇文章主要介绍了Java之ThreadLocal使用常见和方式案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • SpringBoot设置动态定时任务的方法详解

    SpringBoot设置动态定时任务的方法详解

    这篇文章主要为大家详细介绍了SpringBoot设置动态定时任务的方法,文中的示例代码讲解详细,对我们学习有一定的参考价值,需要的可以参考一下
    2022-06-06
  • @SpringBootConfiguration重复加载报错问题解决

    @SpringBootConfiguration重复加载报错问题解决

    @SpringBootApplication 注解的 exclude 属性用于排除特定的自动配置类,而不是用于排除主配置类本身,因此,不能通过 exclude 属性来排除主配置类的加载,这篇文章主要介绍了@SpringBootConfiguration重复加载报错,需要的朋友可以参考下
    2024-08-08
  • Java实现对华北、华南、华东和华中四个区域的划分

    Java实现对华北、华南、华东和华中四个区域的划分

    在Java中,通过定义枚举类、编写主程序和进行测试,本文详细介绍了如何划分华北、华南、华东和华中四个区域,首先定义枚举类标识区域,然后通过主程序接收用户输入并返回相应区域,最后通过测试用例确保正确性,文章还介绍了甘特图和饼状图的使用
    2024-09-09
  • java编程SpringSecurity入门原理及应用简介

    java编程SpringSecurity入门原理及应用简介

    Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案
    2021-09-09
  • Java 二分法检索算法代码实现详解

    Java 二分法检索算法代码实现详解

    这篇文章主要介绍了Java 二分法检索算法代码实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Java实战之用springboot+netty实现简单的一对一聊天

    Java实战之用springboot+netty实现简单的一对一聊天

    这篇文章主要介绍了Java实战之用springboot+netty实现简单的一对一聊天,文中有非常详细的代码示例,对正在学习Java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04

最新评论