Mybatis 使用ON DUPLICATE KEY UPDATE 实现有则修改,无则新增

一、mapper

    void insertOrUpdate(WxUser wxUser);

    void batchInsertOrUpdate(List<WxUser> list);

二、xml

<insert id="insertOrUpdate" parameterType="WxUser">
    INSERT into article_manage (user_no, open_id, phone_number, avatar_url, nick_name, gender, country,
                                province, city, language, real_name, real_id_card, wallet_no, phone_time, real_time,
                                wallet_time, create_by, create_time, update_by, update_time, del_flag)
    VALUES (#{userNo}, #{openId}, #{phoneNumber}, #{avatarUrl}, #{nickName}, #{gender}, #{country},
            #{province}, #{city}, #{language}, #{realName}, #{realIdCard}, #{walletNo}, #{phoneTime}, #{realTime},
            #{walletTime}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{delFlag})
    ON DUPLICATE KEY UPDATE
        phone_number = #{phoneNumber}, avatar_url = #{avatarUrl}, nick_name = #{nickName},
        gender = #{gender}, country = #{country}, province = #{province},
        city = #{city}, language = #{language}, real_name = #{realName},
        real_id_card = #{realIdCard}, wallet_no = #{walletNo}, phone_time = #{phoneTime},
        real_time = #{realTime}, wallet_time = #{walletTime}, create_by = #{createBy},
        create_time = #{createTime}, update_by = #{updateBy}, update_time = #{updateTime},
        del_flag = #{delFlag}
</insert>



<insert id="batchInsertOrUpdate" parameterType="java.util.List" >
    <foreach collection ="list" item="item" separator =";">
        INSERT into article_manage (user_no, open_id, phone_number, avatar_url, nick_name, gender,
                                    country, province, city, language, real_name, real_id_card,
                                    wallet_no, phone_time, real_time, wallet_time, create_by,
                                    create_time, update_by, update_time, del_flag)
        VALUES (#{item.userNo}, #{item.openId}, #{item.phoneNumber}, #{item.avatarUrl}, #{item.nickName}, #{item.gender},
                #{item.country}, #{item.province}, #{item.city}, #{item.language},#{item.realName}, #{item.realIdCard},
                #{item.walletNo}, #{item.phoneTime}, #{item.realTime}, #{item.walletTime}, #{item.createBy},
                #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.delFlag})
        ON DUPLICATE KEY UPDATE
            phone_number = #{item.phoneNumber}, avatar_url = #{item.avatarUrl}, nick_name = #{item.nickName},
            gender = #{item.gender}, country = #{item.country}, province = #{item.province},
            city = #{item.city}, language = #{item.language}, real_name = #{item.realName},
            real_time = #{item.realTime}, wallet_time = #{item.walletTime}, create_by = #{item.createBy},
            create_time = #{item.createTime}, update_by = #{item.updateBy}, update_time = #{item.updateTime},
            del_flag = #{item.delFlag}
    </foreach>
</insert>

注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!


版权声明:本文为wang_jing_jing原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。