Mysql 在 mybatis 环境下 批量 存在则更新,不存在则插入

-- 单条

 <insert id="InsertOrUpdate_Info" parameterType="net.sahv.sssmiao.model.MemberInteraction">
    insert into member_interaction (mi_id,mi_m_id, mi_sys_id, 
            mi_mac, mi_endtime, mi_state
            )
     values  (#{miId},#{info.miMId}, #{miSysId},#{miMac}, #{miEndtime}, #{miState})
    ON DUPLICATE KEY UPDATE
        mi_m_id = VALUES(mi_m_id),
        mi_sys_id = VALUES(mi_sys_id),
        mi_mac = VALUES(mi_mac),
        mi_endtime = VALUES(mi_endtime),
        mi_state = VALUES(mi_state)
</insert>

-- 批量

 <insert id="InsertOrUpdate_Info" parameterType="net.sahv.sssmiao.model.MemberInteraction">
    insert into member_interaction (mi_id,mi_m_id, mi_sys_id, 
            mi_mac, mi_endtime, mi_state
            )
     values
    <foreach collection ="list" item="info" separator="," >
            (#{info.miId},#{info.miMId}, #{info.miSysId},#{info.miMac}, #{info.miEndtime}, #{info.miState}
            )
    </foreach> 
    ON DUPLICATE KEY UPDATE
        mi_m_id = VALUES(mi_m_id),
        mi_sys_id = VALUES(mi_sys_id),
        mi_mac = VALUES(mi_mac),
        mi_endtime = VALUES(mi_endtime),
        mi_state = VALUES(mi_state)
</insert>

 

特别说明

ON DUPLICATE KEY UPDATE
        info_price = values(info_price),created_at=values(created_at)

values(***) 是指 如果数据库表中已存在新插入的这条数据 将这条旧数据的info_price更新为valuse中的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值