myBatis拼接SQL之<trim>标签的使用

1.先复习一下user表的查询SQL用mybatis怎么写

<select id="findAllUser" resultType="User">
    select user_id,user_name,age,user_pwd,email from user
</select>

这个xml文件中是mybatis的配置文件,
功能是查询user表中的全部用户数据
可以查询用户的user_id,user_name,age,user_pwd,email信息
但是如果要加上筛选,比如用年龄(age)来筛选,并且用age和user_id来排序,并且可以按照升序还是降序来排序
这就需要用到where标签来筛选了
如果用age字段来筛选可以看如下的代码

<select id="findUserByAge" resultType="User">
    select user_id,user_name,age,user_pwd,email from user
    <where>
       age = #{age}
    </where>
</select>

如果User对象中的age有值,就会自动传入age值,从而用where标签根据age字段来筛选出想要的数据
本例中还可以使用trim标签来达到一样的效果,where是trim的一种特殊情况
看如下代码:

<select id="findUserByAge" resultType="User">
    select user_id,user_name,age,user_pwd,email from user
    <trim prefix="where" prefixOverrides="and">
        <if test="age!=null and age!=''">
            and age=#{age} 
        </if>
        <if test="lastName!=null&amp;&amp;lastName!=&quot;&quot;">
            and last_name=#{lastName}
        </if>
    </trim>
</select>

prefixOverrides 是省略where 前的and,如果多个字段拼接,第一个age没有值and也会使它省略
&&是and的另外一种写法感兴趣的可以去看w3cschool这个网站
中的HTML基础教程中的HTML实体
传送门:https://www.w3school.com.cn/html/html_entities.asp
上面的查询语句还有另外一种写法:

<select id="findUserByAge" resultType="User">
    select user_id,user_name,age,user_pwd,email from user
    <trim prefix=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值