SqlSession解析

SqlSession是一个会话,相当于JDBC中的一个Connection对象,是整个Mybatis运行的核心。SqlSession接口提供了查询,插入,更新,删除方法,Mybatis中所有的数据库交互都由SqlSession来完成,分析和理解SqlSession的运行原理是学习整个Mybatis的重点。

​ SqlSession接口有两个实现SqlSessionManager,DefaultSqlSession。

SqlSessionManager:对SqlSessionFactory 和SqlSession 接口的实现,主要功能是对SqlSessionFactory 和SqlSession的管理,是更高层次的封装
DefaultSqlSession:SqlSession的实现,Mybatis工作时真正调用的类,所有调用都是通过此类来实现。
DefaultSqlSession实现主要有4大组件来完成:Executor,StatementHandler,ParameterHandler,ResultHandler:

Executor(执行器):由他来调度StatementHandler,ParameterHandler,ResultHandler等来执行对应的SQL;
StatementHandler(数据库会话处理器 ):使用数据库的statement(PreparedStatement)来执行SQL;
ParameterHandler(参数处理器):用于对SQL语句中参数的处理;
ResultHandler(结果集处理器):进行最后结果集(ResultSet)的封装返回处理。

Executor
Executor接口主要有三个实现

SimpleExecutor:简单执行器,如果不配置就是mybatis默认的执行器
ReuseExecutor:一种重用预处理语句的执行器
BatchExecutor:针对批量处理的执行器,执行重用语句和批量更新。

SqlSession的调用过程实际就是Mybatis对JDBC的封装过程,这里内容与上一篇文章的内容很多重合。此处的重点在于对SqlSession的四个组件的介绍,加深对mybatis的核心调用过程的理解。代码分析过程仅以select为例,其他update,delete的流程基本一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值