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)
  • 否则插入失败

总结

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

相关文章

  • 如何基于Autowired对构造函数进行注释

    如何基于Autowired对构造函数进行注释

    这篇文章主要介绍了如何基于Autowired对构造函数进行注释,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java String方法获取字符出现次数及字符最大相同部分示例

    Java String方法获取字符出现次数及字符最大相同部分示例

    这篇文章主要介绍了Java String方法获取字符出现次数及字符最大相同部分,涉及java字符串的遍历、比较、计算等相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • 浅谈SpringBoot中的@Conditional注解的使用

    浅谈SpringBoot中的@Conditional注解的使用

    这篇文章主要介绍了浅谈SpringBoot中的@Conditional注解的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • Springboot集成graylog及配置过程解析

    Springboot集成graylog及配置过程解析

    这篇文章主要介绍了Springboot集成graylog及配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Java IO字符流缓冲区实现原理解析

    Java IO字符流缓冲区实现原理解析

    这篇文章主要介绍了Java IO字符流缓冲区实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • MyBatisPlus 大数据量查询慢的问题解决

    MyBatisPlus 大数据量查询慢的问题解决

    本文主要介绍了MyBatis Plus 解决大数据量查询慢问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 详解如何在Java中重写equals()和hashCode()方法

    详解如何在Java中重写equals()和hashCode()方法

    在 Java 中,equals() 和 hashCode() 方法是 Object 类中定义的重要方法,它们用于比较对象的相等性以及计算对象的哈希值,本文将详细介绍如何在 Java 中重写 equals() 和 hashCode() 方法,并讨论其最佳实践,需要的朋友可以参考下
    2024-08-08
  • Java实战之在线租房系统的实现

    Java实战之在线租房系统的实现

    这篇文章主要介绍了利用Java实现的在线租房系统,文中用到了SpringBoot、Redis、MySQL、Vue等技术,文中示例代码讲解详细,需要的可以参考一下
    2022-02-02
  • hibernate多表操作实例代码

    hibernate多表操作实例代码

    这篇文章主要介绍了hibernate多表操作实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Java类加载策略之双亲委派机制全面分析讲解

    Java类加载策略之双亲委派机制全面分析讲解

    这篇文章主要介绍了Java双亲委派机制,双亲委派模型是Java加载类的机制,采用双亲委派模型的好处是Java类随着它的类加载器一起具备了一种带有优先级的层级关系,通过这种层级关系可以避免类的重复加载,感兴趣的朋友可以参考下
    2023-12-12

最新评论