今日份知识学习
今天我们来学习一个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标签是如何搭配使用的,不知道大家是否有所收获。