trim标签

以下是trim标签中涉及到的属性:

prefix 。。。。。。。。sql语句加前缀

suffix 。。。。。。。。加后缀

prefixOverrides 。。。去除多余的前缀

suffixOverrides 。。。。去除多余的后缀

<trim prefix="(" suffix=")" suffixOverrides=",">

哈哈哈哈,上面的
prefix="(" 是在sql 语句前加前括号

suffix=")" 是在sql语句后加收括号

刚开始一直纠结干嘛写括号还打引号~ 蠢了一下
下面是很好的例子,可以敲下

一、使用trim标签去除多余的逗号

<update id="updateUser" parameterType="com.course.model.User">
        update user
        <trim prefix="set" prefixOverrides=",">
            <if test="userName !=null and userName !=''">
                userName=#{userName}
            </if>
            <if test="passWord !=null and passWord !=''">
                passWord=#{passWord}
            </if>
            <if test="age !=null and age !=''">
                age=#{age}
            </if>
            <if test="sex !=null and sex !=''">
                sex=#{sex}
            </if>
            <if test="permission !=null and permission !=''">
                permission=#{permission}
            </if>
            <if test="isDelete !=null and isDelete !=''">
                isDelete=#{isDelete}
            </if>
        </trim>
        where id=#{id}
    </update>
<select id="getUserList" resultType="com.course.model.User" parameterType="com.course.model.User">
        select * from user
        <trim prefix="where" prefixOverrides="and">
        <if test="sex !=null and sex !=''">
            and sex=#{sex}
        </if>
        <if test="age !=null and age !=''">
            and age=#{age}
        </if>
        </trim>
    </select>

后面我又傻了 为什么要判断是空 还要判断是不是空字符串,有啥区别吗?

userName !=null and userName !=''"

null代表堆内存中根本没有这个东西,
而空字符串就完全不同了,空字符串也是字符串,他是有内存空间的,

String aaa = null;

String bbb = “”;

然后调用String的方法比如说

aaa.indexOf(“a”);

bbb.indexOf(“a”);

这样的话,字符串aaa在调用indexOf的时候会报空指针异常,而bbb则不会。

因为aaa在堆内存中不存在,无法调用方法,而bbb是存在的。

你可以这么想,一个残疾人,虽然他是残疾的,

但是他还是可以调用他的方法,他可以吃饭,

但是如果这个人都不存在了,吃饭更无法执行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值