mysql insert插入时与update修改时的条件判断

最近做级联关系:首先是insert时,有可能同时插入一二三级表,也有可能一二级不变,只插入一二级下面的第三级表。所以DAO层一起执行三条sql语句,自动事务。dual是临时表,不用创建,直接写语句就可以了

 <insert id="insertFirstRentalInThrid">
        INSERT INTO firstrental(
        <include refid="FirstRental_column_sql"/>
        )
        SELECT
        #{fid },
        #{fname}
        FROM dual
        WHERE not exists (select * from firstrental
        where fid = #{fid});
    </insert>

<insert id="insertSecondRentalInThrid">
        INSERT INTO secondrental(
        <include refid="SecondRental_column_sql"/>
        )
        SELECT
        #{sid },
        #{fid },
        #{sname },
        #{title },
        #{content },
        #{date },
        #{tel },
        #{address }
        FROM dual
        WHERE not exists (select * from secondrental
        where sid = #{sid});
    </insert>

接下来是update,也是一个道理,但是update直接用if就可以了

 <update id="updateSecondRentalInThird" parameterType="com.rental.entity.SecondRental">
        UPDATE secondrental
        <set>
            <if test="fid                 !=null">fid = #{ fid },</if>
            <if test="sname                  !=null">sname = #{ sname },</if>
            <if test="title                  !=null">title = #{ title },</if>
            <if test="content                 !=null">content = #{ content },</if>
            <if test="date                  !=null">date = #{ date },</if>
            <if test="tel             !=null">tel = #{ tel },</if>
            <if test="address             !=null">address = #{ address }</if>
        </set>
        WHERE
        sid=#{sid}
    </update>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值