mybatis存在更新不存在新增问题
作者:@淡 定
这篇文章主要介绍了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)
- 否则插入失败
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
