Mybatis框架3

回顾:

1.	多参数查询(@Param,对象)
2.	获取保存主键( select last_insert_id )
3.	动态SQL( if, choose when otherwise, where,set ,trim,foreach )
4.	多表操作(一对一,一对多)
  1. 嵌套查询(重点)
    嵌套查询 : 将多个表联合查询的SQL语句,拆分为多次查询(单表查询)
    1.1 一对一
    案例 : 查询所有账户以及每个账户的所属用户
    1.1.1 区分操作主体
    操作主体:账户
    1.1.2 完成多次查询
    SQL语句
    在这里插入图片描述
    1.1.3 配置映射文件
    在操作主体的映射文件上配置
    在这里插入图片描述
    1.2 一对多
    案例: 查询所有用户以及每个用户下的所有账户
    1.2.1 区分操作主体
    操作主体: 用户
    1.2.2 完成多次查询
    在这里插入图片描述
    1.2.3 配置映射文件
    在这里插入图片描述
  2. 加载策略
    加载策略: 查询关联对象的查询时间
    立即加载: 查询对象之后,立即查询关联对象 (默认配置)
    延迟加载(懒加载): 关联对象,什么时候用,什么时候查
    2.1 局部配置
配置到SQL映射文件的关联关系配置上 (association, collection)
fetchType:
	eager
	lazy

在这里插入图片描述
2.2 全局配置
在核心配置文件中配置全局加载开关
在这里插入图片描述
制定触发延迟加载的方法
在这里插入图片描述
2.3 内部原理
内部原理: 基于子类的动态代理( 生成的动态代理对象是被代理对象的子类)
 被代理对象不能使用final修饰
在这里插入图片描述
3. 缓存机制
3.1 一级缓存
一级缓存 : SqlSession级别的缓存.随着SqlSession的创建而创建,随着SqlSession的关闭而销毁.程序自带的,不可卸载
在这里插入图片描述
3.1.1 验证一级缓存
在这里插入图片描述
3.2 二级缓存
二级缓存: SqlSessionFactory级别的缓存( Mapper级别的缓存).
在这里插入图片描述
3.2.1 二级缓存的配置

  1. 对象需要实现序列化接口
    在这里插入图片描述
  2. 开启全局二级缓存的支持
    . 在这里插入图片描述
  3. 在映射文件中声明要使用二级缓存
    在这里插入图片描述
  4. 将数据保存到二级缓存中,需要进行sqlSession提交或者关闭
    在这里插入图片描述
  5. 核心配置(重点)
    核心配置文件的配置项:sqlMapConfig
    4.1 Properties
    在核心配置文件中,使用外部的properties配置文件
    在这里插入图片描述
    4.2 typeAlias
    typeAlias : 设置对象别名
    在这里插入图片描述
    4.3 Mappers
    加载sql映射文件
    在这里插入图片描述
    4.4 Settings
    全局配置
    在这里插入图片描述
    4.5 事务提交
    在这里插入图片描述
    4.6 使用自定义的数据库连接池
    4.6.1 坐标
    在这里插入图片描述
    4.6.2 自定义工厂
    在这里插入图片描述
    4.6.3 配置
    在这里插入图片描述5. 注解编程
    作用: 替换xml的SQL映射文件
    5.1 使用规则
1.	注解配置到dao接口的方法上
2.	注解中配置sql语句,sql语句的语法和xml映射文件中的语法一致
3.	注解 (@Insert, @Update,@Delete,@Select)

5.2 常规注解(重点)
5.2.1 搭建环境
在核心配置文件中的mappers中加入dao接口的全类名或者以package的形式设置dao接口的包名
5.2.2 使用
在这里插入图片描述
5.3 映射关系

@Results : 声明映射关系配置
     id : 当前映射配置的唯一标识
     value : 接收@Result数组
@Result :
     配置属性和字段的映射关系
     property
     column
     id : boolean参数,表明是否配置主键映射关系(true|false)
         默认值:false
@ResultMap : 引用其他已经存在的映射关系配置
             value=其他Results中id

Result和results
在这里插入图片描述
resultMap
在这里插入图片描述
5.4 多表注解(了解)
只支持嵌套查询
5.4.1 一对一
在这里插入图片描述
5.4.2 一对多
在这里插入图片描述
面试问题

  1. 延迟加载策略
  2. 缓存机制
    作业:
    1.练习 ,2.预习spring第一天

猜你喜欢

转载自blog.csdn.net/AdamCafe/article/details/90680002