ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Mybtis中的动态SQL

2022-08-27 02:01:41  阅读:187  来源: 互联网

标签:Mybtis Java 标签 内容 SQL 动态 where 属性


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,Java,标签,内容,SQL,动态,where,属性
来源: https://www.cnblogs.com/Lake-Chen/p/16620336.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有