Mybatis的xml中使用if/else标签的具体使用

网友投稿 1342 2022-10-05

Mybatis的xml中使用if/else标签的具体使用

Mybatis的xml中使用if/else标签的具体使用

目录使用if标签进行查询where标签出场if/else 使用 choose,when,otherwise 代替

使用if标签进行查询

SELECT

orderNo,

adname,

orderstatus

FROM

order_A

where

order=#{order}

and title=#{title}

需要注意的是:如果第http://一个if的order为null的话 第二值title也为null的话运行会报错,就算第一个if等于null 那么查询语句变成 where and title='哈哈哈' 这样运行的话也会出现错误。

where标签出场

SELECT

orderNo,

adname,

orderstatus

FROM

order_A

order=#{order}

and title=#{title}

where 元素只会在至少有一个子元素的条件返回 SQL 子句的情况下才去插入WHERE子句。而且,若语句的开头为AND或OR,where 元素也会将它们去除。这个只能解决2个值都为空。不能解决order值为空但是title值为空时还是会出现语句错误的情况,这个时候我们可以在and 前面用1=1或者true来解决

如:

或这样

if/else 使用 choose,when,otherwise 代替

由于Mybatis中没有else标签但是可以通过choose,when,otherwise来使用

SELECT

orderNo,

adname,

orderstatus

FROM

`orders_A` as orderTable

`orders_B` as orderTable

`orders_C` as orderTable

`orders_A` as orderTable

翻译一下上面的语句:

当platformtype 值不为空并且把platformtype 值进行去除空字符串,并且值等于1时就会把表orders_A进行拼接,如果条件都不符合的话就会走otherwise标签默认拼接orders_A表进行查询

choose,when,otherwise标签有点像java中的switch 当where的test值满足时会拼接里面的表,otherwise表示其他when标签都不满足时执行拼接

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:关于微信小程序中WXSS的介绍(小程序wxss公用模板)
下一篇:SAP Gateway Service Builder 里的 OData 服务实现方式
相关文章

 发表评论

暂时没有评论,来抢沙发吧~