mybatis 的<choose> <when>标签和<if test >标签的区别

来源:互联网 发布:win10磁盘整理软件 编辑:程序博客网 时间:2024/06/05 06:35

1.choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。
当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。类似于Java 的 switch 语句,choose 为 switch,when 为 case,otherwise 则为 default。

2.if-test 不会跳出判断语句

2.1 if-test标签判断语法:
@see http://blog.csdn.net/z69183787/article/details/51589171
用==判断时应写成

<if test='type=="y"'>      and status = 0   </if>  

而不是

<if test="type=='y'">      and status = 0   </if>  

mybatis是使用的OGNL表达式来进行解析的,在OGNL的表达式中,’y’会被解析成字符,因为java是强类型的,char 和 一个string 会导致不等。所以if标签中的sql不会被解析。具体的请参照 OGNL 表达式的语法

原创粉丝点击