mybatis存在更新不存在新增问题

 更新时间:2024年08月20日 09:26:15   作者:@淡 定  
这篇文章主要介绍了mybatis存在更新不存在新增问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mybatis存在更新不存在新增

主键或者唯一索引,有相同的字段进行添加时进行其他字段更新,否则进行新增

<insert id="insertFwdcBlacklist" parameterType="com.qujie.mintwo.life.fwdc.entity.FwdcBlacklist">
        insert   into fwdc_blacklist
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="shopId != null">shop_id,</if>
            <if test="shopName != null">shop_name,</if>
            <if test="sdmerid != null">sdmerid,</if>
            <if test="shieldFunction != null">shield_function,</if>
            <if test="creditCode != null">credit_code,</if>
            <if test="idcard != null">idcard,</if>
            <if test="addTime != null">add_time,</if>
            <if test="addUserId != null">add_user_id,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="updateUserId != null">update_user_id,</if>
            <if test="remark != null">remark,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="shopId != null">#{shopId},</if>
            <if test="shopName != null">#{shopName},</if>
            <if test="sdmerid != null">#{sdmerid},</if>
            <if test="shieldFunction != null">#{shieldFunction},</if>
            <if test="creditCode != null">#{creditCode},</if>
            <if test="idcard != null">#{idcard},</if>
            <if test="addTime != null">#{addTime},</if>
            <if test="addUserId != null">#{addUserId},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="updateUserId != null">#{updateUserId},</if>
            <if test="remark != null">#{remark},</if>
         </trim>
        ON DUPLICATE KEY UPDATE
        shield_function=#{shieldFunction}
    </insert>

mybatis存在就更新,不存在就插入

条件

主键或唯一索引在现有表中已经存在

方法

on duplicate key update

<update id= "userInfo">
insert into user
(id,username,age)
values
(#{id},#{username},#{age})
on duplicate key update
username=values(username),
age=values(age)
<update>

当id在现有表中存在时,就会执行update语句

注意事项:

  • 后台用Integer
  • 而非int去接收传参(Integer初始值为null,而int初始值为0)
  • 否则插入失败

总结

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

相关文章

  • java使用Validation进行数据校验的方式总结

    java使用Validation进行数据校验的方式总结

    在Java中提供了一系列的校验方式,下面这篇文章主要给大家介绍了关于java使用Validation进行数据校验的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • AQS(AbstractQueuedSynchronizer)抽象队列同步器及工作原理解析

    AQS(AbstractQueuedSynchronizer)抽象队列同步器及工作原理解析

    AQS是用来构建锁或者其他同步器组件的重量级基础框架及整个JUC体系的基石,通过内置的FIFO对列来完成资源获取线程的排队工作,并通过一个int类型变量表示持有锁的状态,本文给大家详细介绍下AQS抽象队列同步器的相关知识,感兴趣的朋友一起看看吧
    2022-03-03
  • Java中流式并行操作parallelStream的原理和使用方法

    Java中流式并行操作parallelStream的原理和使用方法

    本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流时需要注意的线程安全问题和性能问题,并提供了最佳实践建议,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • Java调用C++动态库(DLL)的完整实践指南

    Java调用C++动态库(DLL)的完整实践指南

    这篇文章主要为大家详细介绍如何通过 JNI(Java Native Interface)在 Java 中调用一个用 C++ 编写的分割算法库,有需要的小伙伴可以了解一下
    2025-08-08
  • 详解如何提升SpringBoot项目的吞吐量

    详解如何提升SpringBoot项目的吞吐量

    吞吐量是指系统在单位时间内成功处理请求的数量,当吞吐量不足以应对业务需求时,会导致请求Pile Up的情况发生,使系统不可用甚至宕机,所以提高吞吐量是保证系统可用性的有效手段之一,本文就给大家讲讲如何提升SpringBoot项目的吞吐量
    2023-07-07
  • Mybatis mysql模糊查询方式(CONCAT多个字段)及bug

    Mybatis mysql模糊查询方式(CONCAT多个字段)及bug

    这篇文章主要介绍了Mybatis mysql模糊查询方式(CONCAT多个字段)及bug,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java中调用URL请求的5种常见方法详解

    Java中调用URL请求的5种常见方法详解

    这篇文章主要为大家详细介绍了Java中调用URL请求的5种常见方法实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2025-12-12
  • java微信公众号发送消息模板

    java微信公众号发送消息模板

    这篇文章主要为大家详细介绍了java微信公众号发送消息模板,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • SpringBoot随机端口启动的实现

    SpringBoot随机端口启动的实现

    本文主要介绍了SpringBoot随机端口启动的实现,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • MyBatis 和 MyBatis-Plus从语法详解和优劣对比

    MyBatis 和 MyBatis-Plus从语法详解和优劣对比

    MyBatis和MyBatis-Plus是Java生态中常用的持久层框架,其中 MyBatis-Plus是在 MyBatis 基础上的增强工具,下面从语法详解和优劣对比两部分展开说明,感兴趣的朋友一起看看吧
    2025-07-07

最新评论