MyBatis中的trim标签

并不是很常见,其实是方便之举。

select <include refid="all_column">include> from sys_cloud_vm
    <where>
        <trim prefix="" prefixOverrides="AND | OR" suffix="" suffixOverrides="">
            <if test="filter.obj.resId != null and filter.obj.resId != '' ">
                AND res_id = #{filter.obj.resId}
            if>
            <if test="filter.obj.operation != null and filter.obj.operation != '' ">
                AND operation = #{filter.obj.operation}
            if>
            <if test="filter.obj.moId != null and filter.obj.moId != '' ">
                AND mo_id = #{filter.obj.moId}
            if>
        trim>
    where>

这个其实的意思是,prefixoverrids中,当碰到and or开始的前缀的时候,会自动替换,替换成“”(suffix指定的),
这样避免在where 后面拼接不同的字符了,而最后的suffixoverrids中指定的逗号,则是 最后的部分要去掉的,因为SQL语句中,最后部分不会有逗号存在的。

使用示例


    select  from sys_cloud_vm
        
            
                
                    AND res_id = #{filter.obj.resId}
                
                
                    AND operation = #{filter.obj.operation}
                
                
                    AND mo_id = #{filter.obj.moId}
                
            
        

你可能感兴趣的:(我再也没有对你生气)