MyBatis

1.动态Sql-拼接where条件

需求:如果用户的查询条件会实时变化,则选用动态where条件查询

规则:要求对象中不为null的属性 充当where条件

2.动态Sql拼接set条件

需求说明:如果修改数据时,影虎传递的参数为null时,则应该采用动态sql的格式

规则:如果set标签中有多余的逗号,

3.动态Sql-万能标签  trim

需求:如果动态sql中需要去除其他的关键字,

4.分支结构用法

choose-when-otherwise

sql中采用分支结构语法,如果有一个条件成立,则另外的条件无效了

5.ResultMap介绍(重点)  多表查询时

万能的映射规则

手动添加映射关系

6.驼峰映射规则

mapUnderscoreToCamelCase 是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。 true | false

7.注解模式

8.多表查询

 一对一封装

association    javaType

一对多封装

collection     ofType

MyBatis_第1张图片

内连接  一般查询交集  隐式和显式连接方式

外连接   得到所有的数据   left join  和right join

子查询

懒加载机制

只有子查询才可以懒加载 

使用场景:     适合海量数据查询时只查询其中的个别数据时使用

MyBatis缓存机制

一级缓存

  同一个SqlSession 获取的Mapper接口执行多次查询,sql只查询一次

MyBatis默认开启一级缓存  ,但是多线程请求就是有几条线程就执行几次

二级缓存

不同的用户执行了多次,缓存有效果,sql只执行一次

多个用户查询同一个业务逻辑可以实现共享数据

默认关闭

启用二级缓存

在映射文件中添加二级缓存标签

正确关闭查询:  sqlSession.close

二级缓存注解写法  (一般不用)

@CacheNamespace  写在接口上

@Select 在方法上

当前接口开启二级缓存+配合注解的查询

@acheNamespace和只能二选一

你可能感兴趣的:(mybatis)