Mybatis реализует вставку и обновление с уникальными индексами и без них.

нет уникального индекса

<insert id="saveOrUpdate2" >
  <select count(*) as count from user where id = #{
    
    id} for update</select>
  <if test="count > 0">
    update user set age = #{
    
    age}, name = #{
    
    name} where id = #{
    
    id}
  </if>
  <if test="count == 0">
    insert into user (age, name) values (#{
    
    age}, #{
    
    name})
  </if>
</insert>

имеет уникальный индекс

Уникальный индекс name

<insert id="insertOrUpdateUser" parameterType="User">
  INSERT INTO user (name, age, email)
  VALUES (#{
    
    name}, #{
    
    age}, #{
    
    email})
  ON DUPLICATE KEY UPDATE
  age = VALUES(age),
  email = VALUES(email);
</insert>

Guess you like

Origin blog.csdn.net/weixin_41827053/article/details/129857041