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:在标签中的内容前面或者后面去掉指定内容
    Mybtis中的动态SQL
    4、choose、when、otherwise
    相当于Java中的if…else if…else
    when至少设置一个,otherwise最多设置一个
    只要有其中when的一个条件成立,其他的条件就不下判断了
    5、foreach(批量操作:添加、删除)
    Mybtis中的动态SQL

Mybtis中的动态SQL

Mybtis中的动态SQL

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>

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282415.html

(0)
上一篇 2022年8月27日
下一篇 2022年8月27日

相关推荐

发表回复

登录后才能评论