mybatis核心类及流程图

Mybatis流程图

Mybatis核心成员

  • Configuration MyBatis所有的配置信息都保存在Configuration对象之中,配置文件中的大部分配置都会存储到该类中
  • SqlSession 作为MyBatis工作的主要顶层API,表示和数据库交互时的会话,完成必要数据库增删改查功能
  • Executor MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护
  • StatementHandler 封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数等
  • ParameterHandler 负责对用户传递的参数转换成JDBC Statement 所对应的数据类型
  • ResultSetHandler 负责将JDBC返回的ResultSet结果集对象转换成List类型的集合
  • TypeHandler 负责java数据类型和jdbc数据类型(也可以说是数据表列类型)之间的映射和转换
  • MappedStatement MappedStatement维护一条sql的节点包含SqlSource 和sql操作的一些类型,主键,生成和返回的结果集
  • SqlSource 负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回
  • BoundSql 表示动态生成的SQL语句以及相应的参数信息
MybatisAutoConfiguration
SqlSessionFactory
Configuration
MapperRegistry
addMapper
knownMappers.put
openSqlSession
newTransaction
newExecutor
调用拦截器interceptorChain
newSqlSession
构造方法Executor和配置
getMapper
MapperAnnotationBuilder.parse
parseStatement对sql解析封装
xml解析
注解解析
mybatisplus自定义注入
addMappedStatement注入到Configuration
MapperProxyFactory对mapper代理后获取
获取到的代理对象MapperProxy
接口默认方法DefaultMethodInvoker
mybatis封装PlainMethodInvoker
MapperMethod
INSERT
UPDATE
DELETE
SELECT
FLUSH
Executor
getMappedStatement
clearLocalCache清空一级缓存
newStatementHandler
prepareStatement
paramterStatement参数和sql填充到Statement
执行sql如果是新增返回主键keyGenerator.processAfter

spring事务流程图

DataSourceTransactionManagerAutoConfiguration
DataSourceTransactionManager
applyBeanPostProcessorsAfterInitialization
postProcessAfterInitialization
AbstractAutoProxyCreator
wrapIfNecessary
getAdvicesAndAdvisorsForBean
findEligibleAdvisors
findAdvisorsThatCanApply
canApply是否支持aop类匹配
getClassFilter根据指定类过滤匹配
TransactionAttributeSourceClassFilter事务注解过滤器
TransactionAttributeSource
isCandidateClass是否满足
SpringTransactionAnnotationParser根据Transactional注解匹配
createProxy创建aop对象并且返回
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值