动态sql 之 set if where trim foreach useGeneratedKeys 使用及相关样例

if标签

if 一般用来判断是否为空等 

set标签

  • 所有的set 都放到一个标签中,set会自动去除最后一个逗号
    <update id="updateState">
        update wm_channel
        <set>
            <if test="name != null">
                name = #{name},
            </if>
            <if test="description != null">
                description = #{description},
            </if>
            <if test="status != null">
                status = #{status},
            </if>
            <if test="ord != null">
                ord = #{ord},
            </if>
        </set>
        where id = #{id}
    </update>

where标签 

  • where 标签会自动把前面多于的and   or  去掉

trim标签 

<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim> 

 比如动态插入:

 <insert id="insertInstitution" parameterType="Institution" useGeneratedKeys="true" keyProperty="id">
        insert into institution
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="name != null">name,</if>
            <if test="scale != null">scale,</if>
            <if test="address != null">address,</if>
            <if test="bossName != null">boss_name,</if>
            <if test="bossPhone != null">boss_phone,</if>
            <if test="status != null">status,</if>
            <if test="createTime != null">create_time,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="name != null">#{name},</if>
            <if test="scale != null">#{scale},</if>
            <if test="address != null">#{address},</if>
            <if test="bossName != null">#{bossName},</if>
            <if test="bossPhone != null">#{bossPhone},</if>
            <if test="status != null">#{status},</if>
            <if test="createTime != null">#{createTime},</if>
        </trim>
    </insert>

foreach标签

参数是一个list数组,我们需要动态的把数组里面的取出去,并拼接成(1,2,3)这样的形式

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值