【MyBatis <if> <where>标签介绍】

<if>标签

<if>标签允许我们在SQL语句中添加条件判断。

<if test="condition">
    <!-- 当条件满足时执行的SQL语句 -->
</if>

其中,test属性是一个表达式,如果它的值为true,就会执行标签内的SQL语句,否则会忽略。

<select id="findUsers" parameterType="map" resultType="User">
    SELECT * FROM users
    <where>
        <if test="username != null">
            AND username = #{username}
        </if>
        <if test="age != null">
            AND age = #{age}
        </if>
    </where>
</select>

<where>标签用于包裹<if>条件,如果usernameage参数不为null,相应的条件语句会被包含在最终的SQL查询中。

<where>标签

<where>标签用于将多个条件连接在一起,它会自动处理条件之间的逻辑关系(AND或OR),并且会在必要时去除不必要的AND或OR。

<select id="findUsers" parameterType="map" resultType="User">
    SELECT * FROM users
    <where>
        <if test="username != null">
            AND username = #{username}
        </if>
        <if test="age != null">
            AND age = #{age}
        </if>
    </where>
</select>

如果usernameage都不为null,最终生成的SQL语句会是合理的,不会出现多余的AND关键字。

<foreach>标签

<foreach>标签允许我们迭代一个集合,并在SQL语句中使用集合中的元素。

<foreach collection="collection" item="item" open="(" separator="," close=")">
    <!-- SQL语句中使用#{item}来引用集合中的元素 -->
</foreach>

其中,collection属性是要迭代的集合,item属性是集合中的每个元素,open属性是在迭代开始时添加的字符串,separator属性是在每个元素之间添加的分隔符,close属性是在迭代结束时添加的字符串。

<select id="findUsersByIdList" parameterType="map" resultType="User">
    SELECT * FROM users
    WHERE id IN
    <foreach collection="idList" item="id" open="(" separator="," close=")">
        #{id}
    </foreach>
</select>

<foreach>标签将会迭代idList中的整数,并将它们用于生成IN子句,从而实现根据多个ID查询用户的功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武帝为此

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值