利用Mybatis怎么对配置文件进行解析

  介绍

本篇文章给大家分享的是有关利用Mybatis怎么对配置文件进行解析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。


构建配置

利用Mybatis怎么对配置文件进行解析“> <br/> </p> <p>我们调用新SqlSessionFactoryBuilder () .build()方法的最终目的就是构建<强>配置</强>对象,那么配置何许人也?配置对象是一个配置管家,配置对象之中维护着所有的配置信息。<br/>配置的代码片段如下</p> <pre类= public  class  Configuration  {   ,//环境   ,protected  Environment 环境;   ,protected  boolean  safeRowBoundsEnabled;   ,protected  boolean  safeResultHandlerEnabled =,真的;   ,protected  boolean  mapUnderscoreToCamelCase;   ,protected  boolean  aggressiveLazyLoading;   ,protected  boolean  multipleResultSetsEnabled =,真的;   ,protected  boolean  useGeneratedKeys;   ,protected  boolean  useColumnLabel =,真的;   ,protected  boolean  cacheEnabled =,真的;   ,protected  boolean  callSettersOnNulls;   ,protected  boolean  useActualParamName =,真的;   ,protected  boolean  returnInstanceForEmptyRow;   ,   ,//日志信息的前缀   ,protected  String  logPrefix;   ,   ,//日志接口   ,protected  Class<? extends  Log>, logImpl;   ,   ,//文件系统接口   ,protected  Class<? extends  VFS>, vfsImpl;   ,   ,//本地会话范围   ,protected  LocalCacheScope  LocalCacheScope =, LocalCacheScope.SESSION;   ,   ,//数据库类型   ,protected  JdbcType  jdbcTypeForNull =, JdbcType.OTHER;   ,   ,//延迟加载的方法   ,protected  Set lazyLoadTriggerMethods =, new  HashSet (   ,,arrays . aslist (new  String [], {,“equals",,“clone",,“hashCode",,“toString",}));   ,   ,//默认执行语句超时   ,protected  Integer  defaultStatementTimeout;   ,   ,//默认的执行器   ,protected  ExecutorType  defaultExecutorType =, ExecutorType.SIMPLE;   ,   ,//数据库ID   ,protected  String  databaseId;   ,   ,//映射器注册表   ,protected  final  MapperRegistry  MapperRegistry =, new  MapperRegistry(这个);   ,   ,//拦截器链   ,protected  final  InterceptorChain  InterceptorChain =, new  InterceptorChain ();   ,   ,//类型处理器   ,protected  final  TypeHandlerRegistry  TypeHandlerRegistry =, new  TypeHandlerRegistry ();   ,   ,//类型别名   ,protected  final  TypeAliasRegistry  TypeAliasRegistry =, new  TypeAliasRegistry ();   ,   ,//语言驱动   ,protected  final  LanguageDriverRegistry  languageRegistry =, new  LanguageDriverRegistry ();      ,//mapper_id 和,mapper文件的映射   ,protected  final  Map<字符串,MappedStatement>, mappedStatements =, new  StrictMap (   ,才能“Mapped  Statements  collection");   ,,   ,//mapper_id和缓存的映射   ,protected  final  Map<字符串,Cache>, caches =, new  StrictMap (“caches  collection");   ,   ,//mapper_id和返回值的映射   ,protected  final  Map<字符串,ResultMap>, resultMaps =, new  StrictMap (“Result  Maps  collection");   ,   ,//mapper_id和参数的映射   ,protected  final  Map<字符串,ParameterMap>, parameterMaps =, new  StrictMap (“Parameter  Maps  collection");   ,   ,//资源列的表   ,protected  final  Set ();   ,   ,未完.......   }

构建MappedStatement

在配置中,有个mappedStatements的属性,这是个MappedStatement对象的映射集合,其关键是这个映射器的名称空间+对应节点的id,而价值是一个<强> MappedStatement 对象。
在构建配置的时候,会去解析我们的配置文件。
解析配置文件的关键代码如下

private  void  parseConfiguration (XNode 根),{   ,try  {   ,//issue  # 117, read  properties 第一   ,propertiesElement (root.evalNode (“properties"));   ,Properties  settings =, settingsAsProperties (root.evalNode (“settings"));   ,loadCustomVfs(设置);   ,loadCustomLogImpl(设置);   ,typeAliasesElement (root.evalNode (“typeAliases"));   ,pluginElement (root.evalNode (“plugins"));   ,objectFactoryElement (root.evalNode (“objectFactory"));   ,objectWrapperFactoryElement (root.evalNode (“objectWrapperFactory"));   ,reflectorFactoryElement (root.evalNode (“reflectorFactory"));   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

利用Mybatis怎么对配置文件进行解析