zoukankan      html  css  js  c++  java
  • 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

    我好菜呀
  • 相关阅读:
    MVVM MVC
    ASP.NET MVC中使用Bundle打包压缩js和css的方法
    BundleConfig的作用
    MVC中使用BundleConfig.RegisterBundles引用Css及js文件发布后丢失的问题
    Java面试题-1
    C语言程序设计I—寒假作业
    跟奥巴马一起画方块
    201655222第三周课上作业补做
    20165222第二周学习总结
    20165222第一周课上测试补做
  • 原文地址:https://www.cnblogs.com/LinsenLi/p/9606946.html
Copyright © 2011-2022 走看看