欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis框架3

程序员文章站 2022-03-10 17:09:49
...

回顾:

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语句
    Mybatis框架3
    1.1.3 配置映射文件
    在操作主体的映射文件上配置
    Mybatis框架3
    1.2 一对多
    案例: 查询所有用户以及每个用户下的所有账户
    1.2.1 区分操作主体
    操作主体: 用户
    1.2.2 完成多次查询
    Mybatis框架3
    1.2.3 配置映射文件
    Mybatis框架3
  2. 加载策略
    加载策略: 查询关联对象的查询时间
    立即加载: 查询对象之后,立即查询关联对象 (默认配置)
    延迟加载(懒加载): 关联对象,什么时候用,什么时候查
    2.1 局部配置
配置到SQL映射文件的关联关系配置上 (association, collection)
fetchType:
	eager
	lazy

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

  1. 对象需要实现序列化接口
    Mybatis框架3
  2. 开启全局二级缓存的支持
    . Mybatis框架3
  3. 在映射文件中声明要使用二级缓存
    Mybatis框架3
  4. 将数据保存到二级缓存中,需要进行sqlSession提交或者关闭
    Mybatis框架3
  5. 核心配置(重点)
    核心配置文件的配置项:sqlMapConfig
    4.1 Properties
    在核心配置文件中,使用外部的properties配置文件
    Mybatis框架3
    4.2 typeAlias
    typeAlias : 设置对象别名
    Mybatis框架3
    4.3 Mappers
    加载sql映射文件
    Mybatis框架3
    4.4 Settings
    全局配置
    Mybatis框架3
    4.5 事务提交
    Mybatis框架3
    4.6 使用自定义的数据库连接池
    4.6.1 坐标
    Mybatis框架3
    4.6.2 自定义工厂
    Mybatis框架3
    4.6.3 配置
    Mybatis框架35. 注解编程
    作用: 替换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 使用
Mybatis框架3
5.3 映射关系

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

Result和results
Mybatis框架3
resultMap
Mybatis框架3
5.4 多表注解(了解)
只支持嵌套查询
5.4.1 一对一
Mybatis框架3
5.4.2 一对多
Mybatis框架3
面试问题

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