请先了上一篇
在mybatis框架中使用了大量的设计模式,并且策略模式也是使用的非常之多,下面类介绍一种场景。
myBatis配置文件mybatis-config.xml中的节点settings中有一项配置如下:
<setting name="defaultExecutorType" value="SIMPLE" />
配置的是MyBatis在运行过程中默认的执行器Executor,此项配置的默认值就是SIMPLE,指向就是接口Executor的实现类SimpleExecutor。
通过查看源码可以看得到接口Executor的继承关系如下:
这些实现类为接口Executor的策略簇,实现了不同的执行器策略:
- SimpleExecutor:普通的执行器
- BatchExecutor:批处理执行器
- ReuseExecutor:预处理语句重用执行器
XMLConfigBuilder中,对xml配置的进行解析
这里的configuration是BaseBuilder中的
MyBatis核心类 Configuration类是根据传入的策略对象类型,生产相应的策略对象,代码如下:
configuration的使用在DefaultSqlSessionFactory中
指定执行器类型,事务隔离级别和事务是否自动提交,从数据源中生成SqlSession。
大致步骤:
- xml中配置执行器类型
- 生成对应的执行器
- 根据执行器生成DefaultSqlSession