MapperedStatement
:代表一个增删改查的详细信息调用build方法后,首先会创建一个XMLConfigBuilder对象parser,parser是一个解析器
解析器parser调用parse方法对全局配置文件和mapper映射文件中的每一个标签进行解析,并把每一个标签信息保存到configuration对象中
首先从configuration中获取默认执行器的类型
defaultExecutorType | 配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(PreparedStatement); BATCH 执行器不仅重用语句还会执行批量更新。 | SIMPLE REUSE (可复用) BATCH(批量处理) | SIMPLE |
---|
调用openSessionFromDataSource方法
获取一些信息,创建事务tx
关键一步,创建了一个executor对象
![在这里插入图片描述](https://www.www.zyiz.net/i/ll/?i=7ba1771a98c04e70bab65de2ac127d54.png?,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQmxhY2tCb3hf,size_20,color_FFFFFF,t_70,g_se,x_16)
创建DefaultSqlSession,里面包含Configuration和Executor,并返回(多态形式)
DefaultSqlSession(sqlSession)对象调用getMapper方法,然后调用configuration的getMapper方法,然后调用MapperRegistry对象的getMapper方法
首先根据接口类型获取MapperProxyFactory对象mapperProxyFactory,然后mapperProxyFactory调用newInstance(sqlSession)方法
创建一个MapperProxy,它是实现了InvocationHandler接口,它就是一个InvocationHandler
最后返回MapperProxy代理对象,里面有sqlSession