1、Mybatis概述

2、Mybaits入门环境搭建
pom.xml导入jar包依赖

配置文件


3、入门案例
1、读取配置文件(InputStream、Resource.getResourceStream())
2、创建SqlSessionFactory工厂(SqlSessionFactoryBuilder、SqlSessionFactory、build())
3、使用工厂生产SqlSession对象(openSession()、SqlSession)
4、使用SqlSession创建Dao接口代理对象(Session.getMapper())
5、使用代理对象执行方法
6、释放资源

功能等价于下面

4、Mybatis入门案例中的设计模式(构建者模式、工厂模式、代理模式)

5、注解实现Mybatis入门案例
@Select()

配置文件变化

6、自定义Mybatis分析
Mybatis在使用代理dao的方式实现增删改查时做了那两件事(创建代理对象、在代理对象中使用selectList)
执行查询分析



创建代理对象分析Proxy.nextProxyInstance(x,x,x)

7、自定义Mybatis的编码实现

(1)创建Resources类

(2)创建SqlSessionFactoryBuilder类

(3)创建一个SqlSessionFactory接口

(4)创建一个SqlSesion接口

(5)创建一个Configration配置类

(6)创建一个Mapper类

(7)创建SqlSessionFactory接口的实现类

(8)创建SqlSession实现类


(9)创建自定义代理类

(10)创建一个注解
@Retetion生命周期、@Target出现的位置

8、Mybatis的CRUD

like模糊查询时

配置插入数据后获取keyId

queryVO查询(OGNL表达式)


实现和实体类属性名的映射关系

PrepareStatement对象

9、properties、typeAliases、pagage标签


10、Mybaties连接池及事务
连接池
(1)连接池可以减少我们获取连接所消耗的时间
(2)连接池就是用于存储连接的一个容器
(3)容器其实就是一个集合对象,改集合必须是线程安全的,不能两个线程拿到统一连接
(4)该集合还必须实现队列的特性:先进先出
Mybatis的连接池


事务自动提交

11、动态SQL



12、Mybatis多表操作
(一对一)



(一对多)

(多对多)

13、JNDI(Java命名和接口)

14、Mybatis缓存
(1)延迟加载和立即加载

懒加载配置


一对一延迟加载

(缓存)
缓存-----存在于内存的临时数据
为什么用缓存-----------减少和数据库的交互次数,提高执行效率
什么样的数据用缓存---------经常查询并且不经常改变、数据的正确与否对最总结过影响不大的(缓存数据和数据库不同步)
不适用与缓存----------经常改变的数据、数据的正确与否对最终结果影响比较大、例如:商品的库存、银行的汇率、股市的评价
(Mybatis的一级缓存)
一级缓存-----------它指的是Mybatis中SqlSession对象的缓存,当我们执行查询之后,查询的结果会同时存入到SqlSession为我们提供的一块区域当中,该区域是一个Map。当我们再次查询同样的数据,mybatis会先去sqlSession中查询是否有,有的话就直接拿来用。当SqlSession对象失效时,mybaitis一级缓存也消失了
(触发清空一级缓存)
一级缓存是SqlSession范围的缓存,当调用Sqlsession的修改、添加、删除、commit()、close()等方法时就会清空一级缓存
(Mybatis的二级缓存)
二级缓存-------------它指的是Mybatis中SqlSessionFactory对象的缓存,由同一个SqlSessionFactory对象创建的SqlSession共享其缓存

开启二级缓存



本文深入探讨了MyBatis框架的使用与原理,包括环境搭建、核心设计模式、自定义实现、CRUD操作、动态SQL、多表操作、缓存机制等内容,适合初学者和进阶开发者。
3万+

被折叠的 条评论
为什么被折叠?



