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运行总结
在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值