今日记录:学习一个Mybatis的技能之choose 和 bind

198 阅读2分钟

「这是我参与2022首次更文挑战的第18天,活动详情查看:2022首次更文挑战

今日份知识学习

今天我们来学习一个Mybatis中的技能,可能不是很常用,但是也是非常常见的一个用法了,建议大家看一下,绝对是有些用处的。

接下来一起来看一下吧。

学习一个Mybatis的技能之choose 和 bind

Mybatis中我们经常就是随便写上一个SQL了事,可能有的时候会使用if标签来进行判断之类的操作。

今天我们要说的是在复杂判断条件逻辑下的一个技能choose和bind,如果使用复杂判断条件,就必然会涉及到choose、when、otherwise等等的关键标签。

今天我们不说when、otherwise这些标签。

主要是来说一下choose下的bind标签是如何使用的,还有就是如何在choose下搭配使用的。

接下来就一起来看一个示例mybatis中的xml吧,如下代码:

<select id="get" resultType="java.util.Map">
    SELECT * FROM table_name
    WHERE user_id =
    <choose>
        <when test="user_id_old == '1'">
            CONCAT('1',#{user_id_old},'1')
        </when>
        <otherwise>
            <bind name="userId" value="'2' + user_id_old + '2'"/>
            #{userId}
        </otherwise>
    </choose>
</select>

通过这个示例,我们可以看得出来,在查询table_name表中user_id和user_id_old字段按照一定规则可以匹配的结果。

通过choose标签进行复杂判断,

随后我们通过when标签来进行第一次的条件筛选,并且在为true的情况下,进行首尾拼上1。

when标签之后,是otherwise标签,预示着when标签相反的结果。

这里我们就使用到了bind标签了。

这个标签在这里的功能就很容易看的出来了。

通过userId这个变量,进行value的赋值绑定,随后对其进行返回。

至此,我们得到了bind在choose标签下是如何使用的,这两者是如何进行配合的。

大家可以自行去试一下哈,实践中出真知。

总结

今天我们学习了Mybatis中的bind和choose标签是如何搭配使用的,不知道大家是否有所收获。