2021-03-12-MyBatis动态SQL

MyBatis

  • MyBatis是一个半自动的映射框架,之所以称为半自动,是因为它需要手工匹配提供的POJO、SQL、和映射关系,而Hibernate只需提供POJO和映射关系即可。

动态SQL

  • 动态 SQL,主要用于解决查询条件不确定的情况:在程序运行期间,根据用户提交的查询条件进行查询。提交的查询条件不同,执行的 SQL 语句不同。若将每种可能的情况均逐一列出,对所有条件进行排列组合,将会出现大量的 SQL 语句。此时,可使用动态 SQL 来解决这样的问题。
    即通过 MyBatis 提供的各种标签对条件作出判断以实现动态拼接 SQL 语句。

If

  • 需求:我们现在做用户查询,有可能带用户名,有可能不带
    在这里插入图片描述
  • 查询的时候,给了不给username的值,来观察结果

where

在这里插入图片描述

trim

  • 替换的作用
属性 描述
prefix 给sql语句拼接的前缀
suffix 给sql语句拼接的后缀
prefixOverrides 去除sql语句前面的关键字或者字符,该关键字或者字符由prefixOverrides属性指定,假设该属性指定为"AND",当sql语句的开头为"AND",trim标签将会去除该"AND"
suffixOverrides 去除sql语句后面的关键字或者字符,该关键字或者字符由suffixOverrides属性指定

在这里插入图片描述

choose、when、otherwise

  • 多个查询条件同时出现的时候,排优先级
    If …elseif…else
    在这里插入图片描述

Set

  • 假如一个表有多个字段,但我只需要更新需要更新的字段,减少网络带宽
    在这里插入图片描述

foreach

  • 案例,我们做批量的删除或更新
    方式一,以整型数组的方式
    在这里插入图片描述
  • 方式二:以集合的方式
    在这里插入图片描述
  • 方式三:以map的方式
    在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41270550/article/details/113928762