Mybatis学习笔记——第三天

Mybatis学习打卡

  • Mybatis学习笔记---第三天
  • Mybatis笔记 第三天
  • 一.一对一关联关系数据的处理:student 和 computer
    • 1. 在db里如何通过表的形式来存储数据和体现关系
    • 2. Java类里体现一对一关系
    • 3. 写dao (两个dao)
    • 4. 给实现 ( 映射文件实现 )
  • 二.多对多关系 student ~ course
    • 1. 在db里建表 ( 存储数据本身 , 描述关系 )
    • 2. 在java里通过实体类描述数据和关系
    • 3. 定义dao接口?
  • 三.动态sql --- 依靠标签在映射文件中动态拼接sql命令
    • 1. ` ... ` 条件判断标签
    • 2. `` : 代替where命令 , 标签可以动态的根据情况去掉命令后的多余的and或者or
    • 3. `` 标签 --- 用在修改上
    • 4. 关于``标签
    • 5. 总结 : 针对每个命令的特殊处理方法
  • 四.Mybatis缓存
    • 1. 什么是缓存? 好处
    • 2. Mybatis里缓存的分类 --- 提供缓存机制
    • 3. 二级缓存使用步骤
    • 4. 二级缓存的特点

Mybatis学习笔记—第三天

Mybatis笔记 第三天

一.一对一关联关系数据的处理:student 和 computer

1. 在db里如何通过表的形式来存储数据和体现关系

Mybatis学习笔记——第三天_第1张图片

2. Java类里体现一对一关系

Mybatis学习笔记——第三天_第2张图片

3. 写dao (两个dao)

4. 给实现 ( 映射文件实现 )

  1. 没有关系属性的类对应的dao( ComputerDao ) — 单表操作
  2. 有关系属性的dao ( StudentDao ) — 增删改与单表一致, 查询特殊
    Mybatis学习笔记——第三天_第3张图片

二.多对多关系 student ~ course

1. 在db里建表 ( 存储数据本身 , 描述关系 )

Mybatis学习笔记——第三天_第4张图片

2. 在java里通过实体类描述数据和关系

 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200109193925326.png)

3. 定义dao接口?

  1. 如果直接描述多对多关系会导致 ”数据库里表的个数”与“实体类的个数”不对等 ,
    一般情况下, 开发时只需要程序员提供”查询”业务 , 此时定义两个dao(针对两个
    实体类定义)即可
    ①没有关系属性的dao — 单表查询操作
    ②有关系属性的dao — 表连接查询操作(多表连接查询 — 3张)

Mybatis学习笔记——第三天_第5张图片

2) 如果业务里需要”增删改”功能 , 建议在业务需求分析时,直接将多对多拆分成两个
一对多( 通过添加一组中间的业务数据完成 )

Mybatis学习笔记——第三天_第6张图片

三.动态sql — 依靠标签在映射文件中动态拼接sql命令

1. ... 条件判断标签

Mybatis学习笔记——第三天_第7张图片

2. : 代替where命令 , 标签可以动态的根据情况去掉命令后的多余的and或者or

Mybatis学习笔记——第三天_第8张图片

  1. 使用where标签
    Mybatis学习笔记——第三天_第9张图片
  2. 使用trim标签
    Mybatis学习笔记——第三天_第10张图片

3. 标签 — 用在修改上

作用: 在修改时,去掉命令中多余的”,”
Mybatis学习笔记——第三天_第11张图片
1)使用set标签
Mybatis学习笔记——第三天_第12张图片
2) 使用标签
Mybatis学习笔记——第三天_第13张图片

4. 关于标签

  1. 案例 : 批量删除
    Mybatis学习笔记——第三天_第14张图片
    2) 解决
    Mybatis学习笔记——第三天_第15张图片

5. 总结 : 针对每个命令的特殊处理方法

  1. insert ( 如果插入null值) : #{ xxx , jdbcType=XXXX }
  2. update ( 如果更新时有null值 ) : 和
  3. delete ( 批量删除 ) : where xxx in(…)
  4. select ( 筛选条件为null的情况 ) : 和

四.Mybatis缓存

1. 什么是缓存? 好处

Mybatis学习笔记——第三天_第16张图片

2. Mybatis里缓存的分类 — 提供缓存机制

1)一级缓存 : SqlSession级别的缓存( 默认提供 ) , sqlSession对象有一块缓存区域 ,
只要当前session执行过的sql命令结果会被缓存在自己的空间里, 不同
的session互不影响
2) 二级缓存 : mapper级别的缓存( 全局缓存 ) , mybatis为每一个namespace提供了一
块缓存区 , 不同session执行了同一个namespace里的查询命令, 结果都
会被缓存在”二级缓存里”

Mybatis学习笔记——第三天_第17张图片

3. 二级缓存使用步骤

1)开启mybatis的二级缓存
在这里插入图片描述
2) 在当前的mapper文件里设置
在这里插入图片描述

4. 二级缓存的特点

 1) 当session关闭时, session执行的查询结果会进入二级缓存
 2) 当session调用了接口的增删改方法 并提交 , 则二级缓存会被清空

你可能感兴趣的:(Mybatis,mybatis)