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

来源:互联网 发布:博阅 知乎 编辑:程序博客网 时间:2024/06/13 21:42

最近做级联关系:首先是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>


0 0
原创粉丝点击