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

时间:2022-05-11 23:45:40

想插入数据库一条记录,如果这条记录的主键或者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键。