Mybatis使用on duplicate key update的实现操作

 更新时间:2023年07月24日 10:02:19   作者:保加利亚的风  
本文主要介绍了Mybatis使用on duplicate key update的实现操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

这篇文章我们来讲一下on duplicate key update怎么使用

在mysql中,如果插入语句后面加上on duplicate key update,那么插入行的数据表中的数据主键或者唯一索引出现重复就更新,不重复则插入

我们现在来模拟一下这种情况。

我们现在有一张student表

我们给姓名和手机号添加了唯一索引

接下来我们的思路是:我们添加数据的时候,每个人的姓名和手机号是唯一的,如果有重复的姓名或者手机号那么就不会添加新的内容,而是在原有的数据上进行更新

来看一下我们的sql语句

我们来测试一下

 可以看到我们添加成功,那么我们再次添加,手机号和姓名不变,我们把地址改一下

可以看到姓名和手机号相同的话就会更新数据,那么为什么输出的是两行数据呢?我们在添加一条新的数据

可以看到,7完了以后直接变成9了。

实际上是用了两部操作,第一次插入的时候id变成8了,然后发现唯一索引上有值,后续改为更新操作,将地址更新到id=7上所以下次添加的时候,8已经有了,但是没有添加成功,实际上是存在的,所以就直接递增

到此这篇关于Mybatis使用on duplicate key update的实现操作的文章就介绍到这了,更多相关Mybatis on duplicate key update内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Vert.x Maven插件快速创建项目的方法

    使用Vert.x Maven插件快速创建项目的方法

    这篇文章主要介绍了使用Vert.x Maven插件快速创建项目的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 深入了解Java并发AQS的独占锁模式

    深入了解Java并发AQS的独占锁模式

    AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。一般来说,同步工具实现锁的控制分为独占锁和共享锁,而AQS提供了对这两种模式的支持。本文主要来介绍一下独占锁模式,需要的可以参考一下
    2022-10-10
  • Java concurrency线程池之线程池原理(二)_动力节点Java学院整理

    Java concurrency线程池之线程池原理(二)_动力节点Java学院整理

    这篇文章主要为大家详细介绍了Java concurrency线程池之线程池原理第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 详解Java虚拟机30个常用知识点之1——类文件结构

    详解Java虚拟机30个常用知识点之1——类文件结构

    这篇文章主要介绍了Java虚拟机类文件结构,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Java建造者模式构建复杂对象的最佳实践

    Java建造者模式构建复杂对象的最佳实践

    建造者模式,是一种对象构建模式 它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构造出不同表现的对象。本文将通过示例讲解建造者模式,需要的可以参考一下
    2023-04-04
  • SpringBoot Starter依赖原理与实例详解

    SpringBoot Starter依赖原理与实例详解

    SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰
    2022-09-09
  • java注解结合aspectj AOP进行日志打印的操作

    java注解结合aspectj AOP进行日志打印的操作

    这篇文章主要介绍了java注解结合aspectj AOP进行日志打印的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • java 回调机制的实例详解

    java 回调机制的实例详解

    这篇文章主要介绍了java 回调机制的实例详解的相关资料,希望通过本文的示例能帮助到大家理解使用回调机制,需要的朋友可以参考下
    2017-09-09
  • 浅谈@Aspect@Order各个通知的执行顺序

    浅谈@Aspect@Order各个通知的执行顺序

    这篇文章主要介绍了@Aspect@Order各个通知的执行顺序,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java 数据库连接池c3p0 介绍

    Java 数据库连接池c3p0 介绍

    这篇文章主要介给大家分享了 Java 数据库连接池c3p0 介绍,c3p0 是一个成熟的、高并发的 JDBC 连接池库,支持缓存和 PreparedStatements 的重用。它以LGPL v.2.1或EPL v.1.0授权,下面我们就一起来看看文章内容的详细介绍吧,需要的朋友也可以参考一下
    2021-11-11

最新评论