动态SQL

47 阅读1分钟

一、if

if中的表达式为true执行,反之不执行。借助where 1 = 1

image.png

二、where

where标签后有内容,where标签就生效。若紧跟where标签的是and 或者 or,则会自动去掉and,or。

where标签后没有内容,则where标签也会被省掉。

image.png

三、trim

prefix:在trim标签内容前面加上指定内容

suffix:在trim标签内容后面加上指定内容

prefixOverrides:在trim标签内容前面去掉指定内容

suffixOverrides:在trim标签内容后面去掉指定内容

若trim标签中没有内容,则trim也被省掉。

image.png

四、choose,when, otherwise

choose是个父亲标签,when和otherwise标签都要写在choose中,相当于if...else if...else

image.png image.png

五、foreach

collection:要遍历的集合。

item:每一个元素。

separator:每一个元素间的分隔符。

image.png image.png

这种方式也可以

image.png

插入list

image.png

补充:

open:foreach标签所循环的所有内容的开始符。

close:foreach标签所循环的所有内容的结束符。

open,close一般用于where-id-in这种场景下。

六、sql标签

image.png