《5.2.1 MyBatis简介和优势》24分左右:Mybatis与Hibernate的区别
Mybatis | Hibernate |
---|---|
轻量级 | 重量级 |
半自动(仅有基本的字段映射,对象数据以及对象实际关系仍然需要通过手写sql来实现和管理) | 自动(通过对象关系模型实现对数据库的操作,拥有完整的JavaBean对象与数据库的映射结构来自动生成sql) |
《5.2.2 手写MyBatis》
20:51, 87分: MyBatis中的动态代理
72分:
《5.2.4 高级应用-分页插件》
-
Mybatis插件(Interceptor)又称为拦截器,责任链模式:
-
2:22 Mybatis四大核心接口对象:
每个拦截器都对目标类进行一次代理(层层代理):(左边类为org.apache.ibatis.session.Configuration)
- 通过实现Interceptor接口,拦截StatementHandler,可实现分页功能
《5.2.5 高级应用-读写分离插件》:
-
1:59 数据库的读写分离:
-
4:49 docker安装mysql主从
-
通过Mybatis拦截器获取当前sql为读或写,再通过实现spring的AbstractRoutingDataSource选择相应的datasource
《5.2.6 高级应用-缓存》: -
2分 Mybatis缓存结构 :Mybatis一级缓存默认开启,一级缓存基于sqlsession。二级缓存基于mapper文件的namespace
-
8:16 :
二级缓存似乎也差不多? -
后段: Mybatis二级缓存整合redis
《5.2.7 高级应用-自定义类型处理器》:通过实现Mybatis的TypeHandler接口来实现自定义类型转换器。可通过此方式,使用base64实现对敏感数据的加解密功能
《5.2.8-面试题分析》
- 14:52 Mybatis延迟加载的原理,cglib动态代理
- 25:35 Mybatis分页原理