Java教程

Mybtis中的动态SQL

本文主要是介绍Mybtis中的动态SQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

if:if标签可以通过其中的test属性的表达式进行判断,若表达式的结果为true,则标签中的内容会执行,反之标签中的内容不会执行

如何判断是否有设置该条件,其中内容均为null或者 ' '
test标签中的属性是Java对象的属性,因此需要对应类中的属性,而不是数据库中的属性字段(易错)

动态SQL:

  1. 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中的动态SQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!