MyBatis-Day04

27 篇文章 0 订阅

Review

在这里插入图片描述


1 多表映射(多表查询)

一对一:在一个表中创建另一个表的唯一标识字段(通常就是主键)
一对多:在多的这张表中创建一的这张的唯一标识字段
多对多:关系表 → 包含了两张表的唯一标识 → 互为一对多(本质)

例如:
一对一:User和UserDetail
一对多:User和Order
多对多:Student和Course

1.1 一对一

1.1.1 表关系的维护
在这里插入图片描述

1.1.2 javabean关系维护
在这里插入图片描述

1.1.3 查询

查询结果是User对象或User的数组或List

1.1.3.1分次查询

1.1.3.1.1分析过程
在这里插入图片描述

1.1.3.1.2代码
在这里插入图片描述

1.1.3.1.3单元测试
在这里插入图片描述
1.1.3.2连接查询

1.1.3.2.1分析过程
在这里插入图片描述

调整
在这里插入图片描述

1.1.3.2.2 代码
在这里插入图片描述

1.1.3.2.3 单元测试
在这里插入图片描述

1.2 一对多

1.2.1 表的关系的维护

多的表中创建一的表的唯一标识字段(通常是主键)
在这里插入图片描述

1.2.2 javabean关系维护
在这里插入图片描述

1.2.3 查询

1.2.3.1 分次查询

1.2.3.1.1 分析过程
在这里插入图片描述
1.2.3.1.2 代码
在这里插入图片描述

1.2.3.1.3 单元测试
在这里插入图片描述

1.2.3.2 连接查询

1.2.3.2.1 分析过程
在这里插入图片描述

1.2.3.2.2 代码
在这里插入图片描述

1.2.3.2.3 单元测试
在这里插入图片描述

1.2.3.3 多条记录的查询

sql语句有所区别

增加limit
分次查询:限制的左边的对象的记录数
连接查询:限制的整体结果的记录数

1.3 多对多

student和course的多对多关系

1.3.1表的关系的维护
在这里插入图片描述

1.3.2 javabean关系的维护

本质上就是互为一对多
在这里插入图片描述

1.3.3 查询

1.3.3.1 分次查询

1.3.3.1.1 分析过程
在这里插入图片描述

1.3.3.1.2 代码
在这里插入图片描述

1.3.3.1.3 单元测试
在这里插入图片描述

1.3.3.2 连接查询

1.3.3.2.1 分析过程
在这里插入图片描述

1.3.3.2.2 代码
在这里插入图片描述

1.3.3.2.3 单元测试
在这里插入图片描述

2 缓存和懒加载

2.1 缓存cacheEnabled

查询 → 有了缓存,执行相同的查询,会从缓存中获得结果,而不是重新建立查询过程

2.1.1 一级缓存

sqlSession级别、默认开启
在这里插入图片描述

2.1.1.1 失效

执行了增删改或执行了sqlSession的commit
在这里插入图片描述

2.1.2 二级缓存

命名空间级别,其实也开启,只不过要使用2级缓存需要做些事情
cacheEnabled默认值为true
在这里插入图片描述

1、cacheEnabled=true
2、查询结果的类需要实现序列化接口Serializable
3、映射文件中增加缓存的标记

2.1.2.1 使用二级缓存

案例:使用不同的sqlSession对应的mapper去执行同一个查询

2.1.2.1.1 准备
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.2.1.2 放入缓存

sqlSession的commit或close
在这里插入图片描述

2.2 懒加载lazyLoadingEnabled

懒加载
单例 → 使用的时候才完成实例化
mybatis → 需要使用的时候才去执行查询 → 分次查询的时候 → 第二次查询

2.2.1配置
在这里插入图片描述

2.2.2开启懒加载后,默认是否是懒加载:是
在这里插入图片描述
在这里插入图片描述

2.2.3不想懒加载了
在这里插入图片描述

3 注解

在这里插入图片描述

4 逆向工程mybatis-generator

根据数据库的表 → javabean、接口和对应的映射文件 → 接口和映射文件中也提供一些可用的方法

4.1 引入依赖

在这里插入图片描述

4.2 逆向工程的运行代码

在这里插入图片描述
在这里插入图片描述

4.3 逆向工程的配置文件

4.3.1取出注释

通常去除掉
在这里插入图片描述

4.3.2 jdbc连接信息
在这里插入图片描述

4.3.3 是否去除同名表 true
在这里插入图片描述

如果没有去除,有可能所有的数据库中存在同名表。映射文件里针对于每一个表都生成标签
,而标签的id是固定值 → 同一个映射文件下存在同名id的标签

4.3.4 javabean放哪里
在这里插入图片描述

4.3.5 接口放哪里
在这里插入图片描述

4.3.6 映射文件放哪里
在这里插入图片描述

4.3.7 哪些表要生成这些内容
在这里插入图片描述


在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值