MyBatis六运行原理

MyBatis的运行分为两大部分:
一:读取配置文件缓存到Configuration对象
二:SqlSession的执行过程


构建SqlSessionFactory
SqlSessionFactory最重要的功能就是提供创建MyBatis的核心接口SqlSession
通过XMLConfigBuilder解析配置的XML文件,创建出Configuration,Configuration对象创建SqlSessionFactory对象,MyBatis中SqlSessionFactory是一个接口
而不是实现类,但是提供了一个默认的实现类DefaultSqlSessionFactory。Configuration是一个单例对象。


映射器的内部组成,3个部分
MappedStatement
保存映射器的节点信息
SqlSource
提供BoundSql对象
BoundSql
建立SQL和参数的地方,SQL、parameterObject、parameterMappings三个属性
parameterObject是参数本身,根据传递进来的参数类型存储为不同类型
parameterMappings 是List,是对参数的描述,一般不需要去改变这个对象
SQL就是我们书写在映射器里面的一条SQL


SqlSession的运行过程
Mybatis为什么用Mapper接口就可以运行SQL,因为映射器的XML文件的命名空间对应的便是这个接口的全路径,它根据全路径和方法名称就能和代理类绑定起来,
通过动态代理技术就可以让接口跑起来了


SqlSession四大对象
Executor:执行器,由它调度StatementHandler、Parameterhandler、ResultHandler等来执行对应的SQL
ParameterHandler:用于对SQL参数的处理
ResultHandler:用于最后数据集(ResultSet)的封装处理
StatementHandler:使用数据库的Statement(PreparedStatement)执行操作。


Executor,执行器
MyBatis 中有3中选择器,
SIMPLE(默认)、REUSE、BATCH
Executor会先调用Statementhandlerde prepare()方法预编译SQL语句,然后用parameterize()方法启用ParameterHandler设置参数完成预编译,跟着执行查询,
使用ResultHandler封装结果返回给调用者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值