mybatis工做原理

引導層------>框架支撐層----->數據處理------->接口層sql

一、建立sqlSessionFactoryBuilder對象session

二、build(inputStream)app

三、建立解析器parser框架

四、解析每個標籤把詳細信息保存在Configuration中ui

五、解析mapper.xml代理

mapper.xml中每個元素信息,解析並保存在全局配置文件中,將增刪改查標籤的每個標籤每個屬性都解析出來封裝成一個mapperstatement,一個mapperstatement表明增刪改查的詳細信息,xml

config對象全部配置文件中的詳細信息(封裝)對象

總結:把配置文件的信息解析並保存在configuration中,返回DefaultSqlSession對象blog

一、獲取sqlSessionFactory對象 :解析文件的每個信息保存在configuration中返回包含configuration的defaultsessionfactory(馬批評而statement表明一個增刪改查的詳細信息)接口

二、獲取sqlSession對象:返回sqlSession的實現類DefaultsqlSession對象,裏面包含了Executer的configuration,executor被建立

三、獲取接口的代理對象:getMapper,使用MapperProxyFactory建立一個mapperProxy

四、執行增刪改查方法

總結:一、根據配置文件(全局文件)映射初始化出configuration對象

二、建立一個DefaultsqlSession對象(configuration以及Executor根據全局配置文件的defaultExecutorType)建立出對應的Executor

三、DefaultSqlSession.getMapper():拿到Mapper接口對應的mapperProxy

四、MapperProxy裏面有(DefaultSqlSession)

五、執行增刪改查方法

            一、調用DefaultSqlSession的增刪改查Executor

             二、會建立一個statementHandler對象同時也會建立ParameterHandler

             三、調用statementHandler預編譯參數以及設置參數值ResultSetHandler

             四、調用statementHandler的增刪改查方法

             五、ResultSetHandler對象

相關文章
相關標籤/搜索