当前位置: 首页 > 网络应用技术

Mybatis动态SQL

时间:2023-03-06 20:46:38 网络应用技术

  Mybatis的强大功能之一是它的动态SQL。如果您有JDBC或其他类似框架的经验,您可以体验到痛苦的SQL语句根据不同的条件缝制的痛苦。但还要注意保存列表列表的最终逗号。动态SQL特征的使用可以完全摆脱这种痛苦。

  动态SQL通常所做的是部分包含位置的一部分。例如:

  有时,我们不想使用所有条件语句,而只想从中选择一两个条件。在对这种情况的响应中,Mybatis提供了选择元素,这有点像Java中的Switch语句。

  在第一个栗子中,如果未添加1 = 1,例如,当未建立第一个条件时,SQL就会如下:

  为了防止这种情况,我们可以使用Where元素:

  元素知道,您仅在条件上有多个以上时才插入“ where”子句。此外,如果最终内容为“和”或“”,则元素也知道如何删除它们。

  定制的修剪元素等效于Whater元素为::

  perfix表示语句的前缀,前缀弗里德里德斯指示要删除的前缀(请注意,在本示例中也有必要的空间)。结果是,将删除Prefixoverrides属性中指定的所有内容,并将其插入到该属性中。前缀属性中指定的指定内容。

  “动态更新语句”的类似解决方案被称为集合。设置元素可用于动态包含需要更新的列,并放弃其他列。例如:

  在这里,设置元素将动态前置关键字动态,并且还将消除无关的逗号。

  相应的修剪元素写作是:

  Suffixoverrides删除后缀。

  动态SQL的另一个通常必要的操作是在构建条件语句时通常穿越集合。例如:

  绑定元素可以从OGNL表达式创建变量并将其绑定到上下文。例如:

  它代表进来的参数,与传递连接后分配给模式。

  要在已解决的映射器接口类中使用动态SQL,您可以使用脚本元素。例如:

  配备了“ _databaseId”变量的数据库形式可用于动态代码,因此您可以根据不同的数据库制造商构建特定句子。例如,以下示例: