myBatis--动态SQL

一、介绍
动态 SQL是MyBatis强大特性之一。极大的简化我们拼装SQL的操作。
动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似。
MyBatis 采用功能强大的基于 OGNL 的表达式来简化操作。
二、动态SQL
1.if
myBatis--动态SQL

 myBatis--动态SQL

 

 注意:在查询的时候有些条件没有带上,以至于SQL语句拼装会出现问题:

         ①where后面写上 1=1 ,所有的if条件都要以 and 开头

         ②使用<where>标签将所有的条件包含在标签中;但是这种方式只适合and或者or在语句前

2.choose分支选择 (when, otherwise):带了break的switch-case

 myBatis--动态SQL

3.trim字符串截取 (where封装查询条件, set封装修改条件)
myBatis--动态SQL

 myBatis--动态SQL

 myBatis--动态SQL

4.foreach
(1)遍历
myBatis--动态SQL

 myBatis--动态SQL

(2).批量保存

方式一:

myBatis--动态SQL

方式二:

开启分隔多条查询

myBatis--动态SQL

myBatis--动态SQL

 myBatis--动态SQL

三、OGNL表达式
1.OGNL
myBatis--动态SQL

2.bind

可以将OGNL 的值绑定在一个变量上,方便以后引用这个变量的值

myBatis--动态SQL

 四、两个内置参数

myBatis默认的两个内置参数:

1.  _parameter:代表整个参数      如果是一个参数:代表这个参数本身

      如果是多个参数:例如map集合,那么急代表这个集合

myBatis--动态SQL

2.  _databaseId:如果配置了DatabaseIdProvider标签,则_databaseId就是代表当前数据库的别名

myBatis--动态SQL

五、sql标签

抽取可重用的SQL片段,方便后续的引用;

1.SQL抽取:经常要查询或者更新的列名,抽取出来进行引用

2.include标签:将抽取好的部分进行引用

3.include标签还可以自定义字段使用<property>标签,要使用${自定义的参数}取值

myBatis--动态SQL

myBatis--动态SQL

 myBatis--动态SQL

myBatis--动态SQL

上一篇:MySQL 高可用 MySQL High Availability 示例代码下载


下一篇:JAVA中直接用Jdbc就能操作数据库了,为什么还要用spring框架?