Mybatis中where标签与if标签怎么结合使用(if,mybatis,where,开发技术)

时间:2024-04-28 22:55:06 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Mybatis%E4%B8%ADwhere%E6%A0%87%E7%AD%BE%E4%B8%8Eif%E6%A0%87%E7%AD%BE%E6%80%8E%E4%B9%88%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8

select筛选出视图对象的参数,用于给前端返回页面参数使用。

以下代码格式是正确,我们先观察下and或者or的位置。

再看一下错误的写法;

这时候运行该代码,当beginCreateTimeendCreateTime为空时,我们会发现报错SQL执行异常,原因是where多了一个and

<if>标签判断失败后, <where> 标签关键字可以自动去除掉库表字段赋值前面的and,不会去掉语句后面的and关键字,即<where> 标签只会去掉<if> 标签语句中的最开始的and关键字。所以上面的写法(and写在后面)是不符合mybatis规范的。

当不使用<where>标签时,正确的写法可以参考以下代码:

此时我们发现and是写在前面的,同时增加了1=1条件。

如果我们去掉1=1条件,同时去掉第一个<if>标签的and

这种情况下,当fileName为空时,sql语句中会出现where and这种错误的语法,最终导致sql执行异常。所以正确的代码中,使用1=1条件,当fileName为空时,sql语句就会变成where 1=1 ,后面接不接and都能正确执行。

在不使用<where>标签的情况下,and写在后面,在where条件最后增加1=1判断,原理和上面一样,这里就不再赘述了。

本文:Mybatis中where标签与if标签怎么结合使用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Vue高级特性概念原理是什么下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18