mybatis源码阅读记录

文章目录

  • 书名

书名

深入浅出MyBatis 技术原理与实战
杨开振著

这里讲了基本api和部分mybaits的源码导读非常推荐

#大体结构
SqlSessionFactory (defaultSqlSessionFactory)构建SqlSession
configuration xml文件的内存表达

MappedStatement:保存mapper里面的一个节点(select,insert,delete,update)
sqlSource:提供boundSql对象的地方 是mappedStatement的一个属性
BoundSql:建立sql 和参数的地方,三个常用数据 sql,parameterOjbect,parameterMappings

MapperProxy是mapper的执行代理,重要函数式execute,对于select语句一般执行者是executeformany

#SqlSession下的四个对象
Executor 执行器,用来调度StatementHandler,ParameterHandler,resultHandler来执行对应的sql
StatementHandler:使用数据库的statement(preparedStatement)执行操作
ParameterHandler 用于sql对参数的处理
ResultHandler 对结果集ResultSet进行封装返回

##Executor
simple ,简单执行器 默认的
reuse,
batch,

##simpleExecutor 核心方法 doQuery
用于获取StatementHandler,并且对StatementHandler进行参数初始化,然后执行具体查询.
##StatementHandler
RoutingStatementHandler是一个代理对象,真正的handler会有三个,分别对应三个执行器
simpleStatementHandler preparedstatementhandler,callablestatementandler,
对常用的是handler是(preparedstatementhandler)
在 handler里面的query方法中,会调用resultsethandler对结果进行包装.

##参数处理器parameterhandler
实现类defaultparameterhandler
##结果处理器resultsethandler
实现类defaultresultsethandler
这里会涉及到懒加载,作者没有讲

#sqlsession运行总结
mybatis源码阅读记录_第1张图片

可以看到statmenthandler是mybaits里面的核心内容…

你可能感兴趣的:(源码mybatis)