【Mybatis】 动态 SQL 中的插入脚本语言
【Mybatis】 动态 SQL 中的插入脚本语言Metadatatitle: 【Mybatis】 动态 SQL 中的插入脚本语言
date: 2023-01-21 12:35
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 动态 SQL 中的插入脚本语言
【Mybatis】 动态 SQL 中的插入脚本语言MyBatis 从 3.2 版本开始支持插入脚本语言,这允许你插入一种语言驱动,并基于这种语言来编写动态 SQL 查询语句。
可以通过实现以下接口来插入一种语言:
public interface LanguageDriver {
ParameterHandler createParameterHandler(MappedStatement mappedStatement, Object ...
【Mybatis】 多数据库支持
【Mybatis】 多数据库支持Metadatatitle: 【Mybatis】 多数据库支持
date: 2023-01-21 12:33
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 多数据库支持 `_databaseId` 变量来识别
【Mybatis】 多数据库支持如果配置了 databaseIdProvider,你就可以在动态代码中使用名为 “_databaseId” 的变量来为不同的数据库构建特定的语句。比如下面的例子:
<insert id="insert">
<selectKey keyProperty="id" resultType="int" order="BEFORE">
<if test="_databaseId == 'or ...
【Mybatis】 bind
【Mybatis】 bindMetadatatitle: 【Mybatis】 bind
date: 2023-01-21 12:32
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 bind
【Mybatis】 bindbind 元素允许你在 OGNL 表达式以外创建一个变量,并将其绑定到当前的上下文。比如:
<select id="selectBlogsLike" resultType="Blog">
<bind name="pattern" value="'%' + _parameter.getTitle() + '%'" />
SELECT * FROM BLOG
WHERE title LIKE #{pattern}
</select>
...
【Mybatis】 script
【Mybatis】 scriptMetadatatitle: 【Mybatis】 script
date: 2023-01-21 12:32
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 script
【Mybatis】 script要在带注解的映射器接口类中使用动态 SQL,可以使用 script 元素。比如:
@Update({"<script>",
"update Author",
" <set>",
" <if test='username != null'>username=#{username},</if>",
" <if test='password != ...
【Mybatis】 foreach
【Mybatis】 foreachMetadatatitle: 【Mybatis】 foreach
date: 2023-01-21 12:31
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 foreach
【Mybatis】 foreach动态 SQL 的另一个常见使用场景是对集合进行遍历(尤其是在构建 IN 条件语句的时候)。比如:
<select id="selectPostIn" resultType="domain.blog.Post">
SELECT *
FROM POST P
<where>
<foreach item="item" index="index" collection="list"
open="ID ...
【Mybatis】 trim、where、set
【Mybatis】 trim、where、setMetadatatitle: 【Mybatis】 trim、where、set
date: 2023-01-21 12:27
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 trim、where、set
【Mybatis】 trim、where、set前面几个例子已经方便地解决了一个臭名昭著的动态 SQL 问题。现在回到之前的 “if” 示例,这次我们将 “state = ‘ACTIVE’” 设置成动态条件,看看会发生什么。
<select id="findActiveBlogLike"
resultType="Blog">
SELECT * FROM BLOG
WHERE
<if test="state ...
【Mybatis】 choose、when、otherwise
【Mybatis】 choose、when、otherwiseMetadatatitle: 【Mybatis】 choose、when、otherwise
date: 2023-01-21 12:26
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 choose、when、otherwise 等同于 switch
【Mybatis】 choose、when、otherwise有时候,我们不想使用所有的条件,而只是想从多个条件中选择一个使用。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句。
还是上面的例子,但是策略变为:传入了 “title” 就按 “title” 查找,传入了 “author” 就按 “author” 查找的情形。若两者都 ...
【Mybatis】 if
【Mybatis】 ifMetadatatitle: 【Mybatis】 if
date: 2023-01-21 12:24
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 if
【Mybatis】 if使用动态 SQL 最常见情景是根据条件包含 where 子句的一部分。比如:
<select id="findActiveBlogWithTitleLike"
resultType="Blog">
SELECT * FROM BLOG
WHERE state = ‘ACTIVE’
<if test="title != null">
AND title like #{title}
</if>
</select>
...
【Mybatis】 XML 映射器
【Mybatis】 XML 映射器Metadatatitle: 【Mybatis】 XML 映射器
date: 2023-01-21 12:20
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 XML 映射器
【Mybatis】 Selectundefined
【Mybatis】 Insert, Update, Deleteundefined
【Mybatis】 Sqlundefined
【Mybatis】 参数undefined
【Mybatis】 结果映射undefined
【Mybatis】 自动映射undefined
【Mybatis】 缓存undefined
【Mybatis】 缓存
【Mybatis】 缓存Metadatatitle: 【Mybatis】 缓存
date: 2023-01-21 12:17
tags:
- 行动阶段/完成
- 主题场景/组件
- 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
- 细化主题/Module/Mybatis
categories:
- Mybatis
keywords:
- Mybatis
description: 【Mybatis】 缓存
【Mybatis】 缓存MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。 为了使它更加强大而且易于配置,我们对 MyBatis 3 中的缓存实现进行了许多改进。
默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。 要启用全局的二级缓存,只需要在你的 SQL 映射文件中添加一行:
<cache/>
基本上就是这样。这个简单语句的效果如下:
映射语句文件中的所有 select 语句的结果将会被缓存。
映射语句文件中的所有 insert、update 和 ...