首页 > 编程知识 正文

mysql查看sql执行进度(一.SQL执行流程分析(一)—sessionFactory)

时间:2023-05-05 19:48:51 阅读:123638 作者:1083

##一. SQL执行流程分析(一)—会话工厂

(1)首先,SqlSessionFactoryBuilder去读取mybatis的配置文件,然后构建DefaultSqlSessionFactory

publicsqlsessionfactorybuild (yld xf,字符串环境, 在Properties properties ) try(/xmlconfigbuilder中分析配置文件,并且所有有关已解析配置的信息都是Configuration对象xmlconfigbuilderparser=newxmlconfigbuilder 创建DefaultSessionFactory对象返回构建(parser.parse ); }catch(exceptione ) throwexceptionfactory.wrap exception (' errorbuildingsqlsession.',e ); } finally { ErrorContext.instance ().reset ); try { inputStream.close (; }catch(ioexceptione )//intentionally ignore.preferpreviouserror.} publicsqlsessionfactorybuild )配置

privatexmlconfigbuilder (xpathparserparser,String environment,Properties props ) super (新配置) ); ErrorContext.instance ().resource ) (SQLmapperconfiguration ); this.configuration.set variables (props ); this.parsed=false; this.environment=environment; this.parser=parser; }隐私保护配置(xnoderoot ) try )/issue # 117 readpropertiesfirstpropertieselement ) root.evalnode )。 属性设置=settingsasproperties (root.eval node (' settings ' ); loadcustomvfs(settings; loadcustomlogimpl(settings; typealiaseselement (根. eval node ) ) typealiases ); plugin element (根. eval node ) (plugins ); 对象工厂元素(根. eval node ) (对象工厂); objectwrapperfactoryelement (根节点(objectwrapperfactory ) ); 反射器工厂(root.eval node (反射器工厂); 设置元素(设置; //readitafterobjectfactoryandobjectwrapperfactoryissue # 631环境元素(根. eval node (环境' ); 数据库服务提供商元素(根. eval node (数据库服务提供商); typehandlerelement (根. eval node ) ) typehandlers ); 映射器元素(根. eval node ) (映射器); }catch(exceptione ) thrownewbuilderexception (' errorparsingsqlmapperconfiguration.cause 3360 ' e,e ); (3)加载映射器文件

映射器元素(根. eval node ) (映射器); //addmapperconfiguration.add mapper (mapper界面; 将映射器放入映射中,value是简单的大树tvoidaddmapper(classttype ) if ) type.is接口(if ) has mapper (type ) ) throw now } boood try{knownmappers.put(type,newmapperproxyfactory ) type ); //it ' simportantthatthetypeisaddedbeforetheparserisrun//otherwisethebindingmayautomaticallybeattemptedbythe/mappper parseriseriser it won ' ttry.mapperannotationbuilderparser=newmapperannotationbuilder (parser.parse (; 加载完成=true; } finally { if (! 加载完成(known mappers.remove ) type; } } } }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。