Mybtis中的动态SQL
作者:互联网
if:if标签可以通过其中的test属性的表达式进行判断,若表达式的结果为true,则标签中的内容会执行,反之标签中的内容不会执行
如何判断是否有设置该条件,其中内容均为null或者 ' '
test标签中的属性是Java对象的属性,因此需要对应类中的属性,而不是数据库中的属性字段(易错)
动态SQL:
- if:通过test属性中的表达式,来判断标签中的内容是否有效(是否会拼接到SQL中)
2、where:
a.如果where标签中有条件成立,那么where标签可以自动生成where关键字
b.可以将where标签中的内容前多余的and去掉,但是其中内容多余的and无法去掉
c.如果当前的标签中没有任何一个成立,那么where标签自动省略
(where和if通常结合使用)
3、trim
prefix、suffix:在标签中内容前面或者后面,添加指定内容
prefixOverrides、suffixOverrides:在标签中的内容前面或者后面去掉指定内容
4、choose、when、otherwise
相当于Java中的if...else if...else
when至少设置一个,otherwise最多设置一个
只要有其中when的一个条件成立,其他的条件就不下判断了
5、foreach(批量操作:添加、删除)
a.collection:设置要循环的数组或者集合,通俗的来说是变量param中的值
b.item:用一个字符串来表示数组或者集合中的每一个数据,需要操作的对象或者字段(Java中)、需要操作的对象
c.separator:设置每次循环的数据之间的分隔符
d.open、close:循环的所有内容以....开始,以.....结束
6、sql片段:
记录一段sql,在需要用的地方使用include标签进行引入,从而进行引用
<sql id="StudentColumns">
student_id,student_name......
</sql>
<include refid = "StudentColumns"></include>
标签:Mybtis,Java,标签,内容,SQL,动态,where,属性 来源: https://www.cnblogs.com/Lake-Chen/p/16620336.html