• MyBatis动态SQL标签


    1、if

    通常用于WHERE语句中,通过判断参数值来决定是否使用某个查询条件

    2、choose(when,otherwise)

    按顺序判断其内部when标签中的test条件是否成立,如果有一个成立,则 choose 结束。当 choose 中所有 when 的条件都不满则时,则执行otherwise中的sql。

    如果说 if 标签是与(and)的关系,那么 choose 是或(or)的关系。

    3、trim(修剪)

    该标签中有四个属性:prefix,prefixOverrides,suffix,suffixOverrides

    可以在包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix。

    可以把包含内容的首部某些内容覆盖,也可以把尾部的某些内容覆盖(即忽略掉),对应的属性是prefixOverrides和suffixOverrides(只有这两个属 性的情况下),如果这两个属性设置的值不是包含内容的前缀或者尾部的话,那么这个属性不起作用。

    如果同时设置了prefix以及prefixOverrides,那么prefix的值会覆盖掉首部prefixOverrides的内容(另外一对同理)。

    正因为trim有这样的功能,所以我们也可以非常简单的利用trim来代替where元素的功能。

    4、where

    用于简化sql语句中where条件判断的书写

    在使用if标签而不使用where标签下的条件查询情况下,如果条件没有一个能匹配上,那么生成的sql语句就会变成:

    SELECT * FROM test
    WHERE

    要知道多个条件之间是要用and或者or来连接的,如果第一个不匹配但是第二个之后的匹配的话,那么那么生成的sql语句就会变成:

    SELECT * FROM test
    WHERE
    AND name = 'mori'

    where 标签知道只有在一个以上的if条件有值的情况下才去插入“WHERE”子句。而且会把最后第一个条件成立的and或者是or给忽略掉。

    5、set

    一般将其用在update的sql语句中。

    生成update语句时若使用if标签,如果前面的if没有执行,则可能导致有多余逗号的错误,使用set标签可以剔除追加到条件末尾的任何不相关的逗号 

    6、foreach

    当传递一个 List 实例或者数组作为参数对象传给 MyBatis,MyBatis 会自动将它包装在一个 Map 中,用名称作为键:

    List 实例将会以“list”作为键,而数组实例将会以“array”作为键。

    https://blog.csdn.net/m0_37204491/article/details/71436872

    我好菜呀
  • 相关阅读:
    计算机网络拓扑结构
    中继器,集线器,网桥,交换机,路由器
    网络层次模型
    广播域和冲突域
    Tomcat
    Log4j
    Eclipse实用快捷键
    WebService是什么?
    定时任务处理-Quartz
    MySQL内存表-临时表
  • 原文地址:https://www.cnblogs.com/LinsenLi/p/9606946.html
Copyright © 2020-2023  润新知