Mybatis 有则更新,无则插入的实现

Posted earlybridvic

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis 有则更新,无则插入的实现相关的知识,希望对你有一定的参考价值。

想插入数据库一条记录,如果这条记录的主键或者Unique键已存在,则更新这条记录,如果主键或Unique键不存在,则新增这条记录。用Mybatis实现。网上有些方法说用replace into,但是mybatis是不支持的。所以,必须使用ON DUPLICATE KEY UPDATE。

<insert id="insertUser"  useGeneratedKeys="true" keyProperty="id" keyColumn="id"
            parameterType="com.foreigners.entity.User">
        insert INTO
        t_user(openId, name, gender, phoneNumber)
        VALUES
        (#{openId},#{name},#{gender},#{phoneNumber})
        ON DUPLICATE KEY UPDATE
        name = #{name},
        gender = #{gender},
        phoneNumber = #{phoneNumber}
</insert>

这段代码里,openId是Unique键。

 

以上是关于Mybatis 有则更新,无则插入的实现的主要内容,如果未能解决你的问题,请参考以下文章

批量插入数据库数据,有则更新,无则追加

SQL 利用存储过程实现对表数据有则更新无则添加

数据类型(字典)

mysql更新字段记录没有则添加

Android 11.0 开机时自动检测摄像头,有则显示,无则隐藏Camera APK图标

PostgreSQL 务实应用(二/5)插入冲突