MyBatis框架各组件作用详解

文章详细梳理了MyBatis框架的加载过程,重点讨论了BaseBuilder抽象类在配置解析中的作用,以及SqlSession和Executor接口的功能。BaseBuilder作为建造者模式的一部分,其子类如XMLConfigBuilder和XMLStatementBuilder分别处理不同类型的配置解析。SqlSession是执行SQL的核心接口,由SqlSessionFactory创建,而Executor则实现了包括缓存管理在内的数据库操作。Handler负责实际的SQL处理工作。
摘要由CSDN通过智能技术生成

在梳理完MyBatis框架的加载、使用以及延迟加载的流程之后,对这个框架有了一个较为深刻的认识,所以对在这些过程中使用到的一些类和组件进行一个总结和梳理,再从全局角度重新审视一下MyBatis框架。

BaseBuilder

 

在MyBatis框架初始化过程中,利用到了建造者模式来对各种配置进行解析,BaseBuilder抽象类作为建造者的接口,在其中定义了几个核心字段,例如Configuration,所有解析的结果都存放在Configuration当中,TypeAliasRegistry别名注册器和TypeHandlerRegistry类型处理注册等,这些东西构成了MyBatis的核心。

他的几个重要子类如上图所示,XMLConfigBuilder重要对mybatis-config.xml进行解析,

XMLStatementBuilder对具体的sql语句进行解析,XMLMapperBuilder和MapperBuilderAssistant这两个协作对mapp.xml进行解析,builder专注于解析mapper文件获取数据,assistant专注于加载处理解析出的数据,例如建立缓存和映射关系等等。

SqlSession

MyBatis的核心接口,通过SqlSessionFactory工厂对象创建,SqlSessionFactory工厂对象又通过SqlSessionFactoryBuilder来加载,通常情况下SqlSessionFactoryBuilder只用创建一次,用来加载SqlSessionFactory对象,SqlSessionFactory是全局通用的,只需要通过Builder加载一次即可,通过SqlSessionFactory可以创建多个SqlSession对象,每个会话对象可以多次执行sql语句,可通过全限定名+id的方式直接执行sql,也可以通过获取Mapper对象的方式通过Mapper来执行每个映射下的指定sql。

Executor

Executor是MyBatis的核心接口,其中定义了数据库操作的基本方法,包括事务、缓存、增删改查等,SqlSession接口的一些功能就是Executor实现的,在query时会将结果存入缓存,在update时会将缓存清除等等,这些都是一级缓存。

Handler

主要负责真正的处理动作,例如在执行查询方法时,handler负责解析出sql语句并交给statement执行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值