亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

深入淺出Mybatis系列(二)---配置簡介(mybatis源碼篇)

2019-11-14 09:03:52
字體:
來源:轉載
供稿:網友

上篇文章《深入淺出Mybatis系列(一)---Mybatis入門》, 寫了一個Demo簡單體現了一下Mybatis的流程。本次,將簡單介紹一下Mybatis的配置文件:

上次例子中,我們以 SqlsessionFactoryBuilder 去創建 SqlSessionFactory,  那么,我們就先從SqlSessionFactoryBuilder入手, 咱們先看看源碼是怎么實現的:

SqlSessionFactoryBuilder源碼片段:

public class SqlSessionFactoryBuilder {  //Reader讀取mybatis配置文件,傳入構造方法  //除了Reader外,其實還有對應的inputStream作為參數的構造方法,  //這也體現了mybatis配置的靈活性  public SqlSessionFactory build(Reader reader) {    return build(reader, null, null);  }  public SqlSessionFactory build(Reader reader, String environment) {    return build(reader, environment, null);  }    //mybatis配置文件 + PRoperties, 此時mybatis配置文件中可以不配置properties,也能使用${}形式  public SqlSessionFactory build(Reader reader, Properties properties) {    return build(reader, null, properties);  }    //通過xmlConfigBuilder解析mybatis配置,然后創建SqlSessionFactory對象  public SqlSessionFactory build(Reader reader, String environment, Properties properties) {    try {      XMLConfigBuilder parser = new XMLConfigBuilder(reader, environment, properties);      //下面看看這個方法的源碼      return build(parser.parse());    } catch (Exception e) {      throw ExceptionFactory.wrapException("Error building SqlSession.", e);    } finally {      ErrorContext.instance().reset();      try {        reader.close();      } catch (IOException e) {        // Intentionally ignore. Prefer previous error.      }    }  }  public SqlSessionFactory build(Configuration config) {    return new DefaultSqlSessionFactory(config);  }}通過源碼,我們可以看到SqlSessionFactoryBuilder 通過XMLConfigBuilder 去解析我們傳入的mybatis的配置文件, 下面就接著看看 XMLConfigBuilder 部分源碼:

/** * mybatis 配置文件解析 */public class XMLConfigBuilder extends BaseBuilder {  public XMLConfigBuilder(InputStream inputStream, String environment, Properties props) {    this(new XPathParser(inputStream, true, props, new XMLMapperEntityResolver()), environment, props);  }  private XMLConfigBuilder(XPathParser parser, String environment, Properties props) {    super(new Configuration());    ErrorContext.instance().resource("SQL Mapper Configuration");    this.configuration.setVariables(props);    this.parsed = false;    this.environment = environment;    this.parser = parser;  }    //外部調用此方法對mybatis配置文件進行解析  public Configuration parse() {    if (parsed) {      throw new BuilderException("Each XMLConfigBuilder can only be used once.");    }    parsed = true;    //從根節點configuration    parseConfiguration(parser.evalNode("/configuration"));    return configuration;  }  //此方法就是解析configuration節點下的子節點  //由此也可看出,我們在configuration下面能配置的節點為以下10個節點  private void parseConfiguration(XNode root) {    try {      propertiesElement(root.evalNode("properties")); //issue #117 read properties first      typeAliasesElement(root.evalNode("typeAliases"));      pluginElement(root.evalNode("plugins"));      objectFactoryElement(root.evalNode("objectFactory"));      objectWrapperFactoryElement(root.evalNode("objectWrapperFactory"));      settingsElement(root.evalNode("settings"));      environmentsElement(root.evalNode("environments")); // read it after objectFactory and objectWrapperFactory issue #631      databaseIdProviderElement(root.evalNode("databaseIdProvider"));      typeHandlerElement(root.evalNode("typeHandlers"));      mapperElement(root.evalNode("mappers"));    } catch (Exception e) {      throw new BuilderException("Error parsing SQL Mapper Configuration. Cause: " + e, e);    }  }}

通過以上源碼,我們就能看出,在mybatis的配置文件中:

1. configuration節點為根節點。

2. 在configuration節點之下,我們可以配置10個子節點, 分別為:properties、typeAliases、plugins、objectFactory、objectWrapperFactory、settings、environments、databaseIdProvider、typeHandlers、mappers。

 

本篇文章就先只介紹這些內容,接下來的文章將依次分析解析這個10個節點中比較重要的幾個節點的源碼,看看在解析這些節點的時候,到底做了些什么。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美黑人视频一区| 欧美日韩另类在线| 日韩av在线免费观看| 性欧美办公室18xxxxhd| 国产精品永久在线| 亚洲国产精品va在线| 国产成人av网址| 97香蕉久久夜色精品国产| 欧美美女15p| 国产精品第七影院| 美日韩精品免费视频| 91精品久久久久久久久久入口| 青青久久av北条麻妃黑人| 欧美极品少妇xxxxⅹ免费视频| 欧美激情视频一区二区| 国产精品欧美日韩一区二区| 欧美在线性视频| 欧美性猛交xxxx乱大交3| 日韩精品视频中文在线观看| 国产精品永久在线| 午夜精品久久久99热福利| 国产精品一区久久| 一本色道久久88综合亚洲精品ⅰ| 日韩在线观看免费全集电视剧网站| 欧美黄色免费网站| 91色在线视频| 亚洲成av人影院在线观看| 日韩中文字在线| 久久精品男人天堂| 国产偷亚洲偷欧美偷精品| 91成人国产在线观看| 日日骚av一区| 亚洲欧美日韩一区在线| 国产日韩欧美电影在线观看| 日韩精品免费一线在线观看| 欧美日产国产成人免费图片| 91亚洲国产成人久久精品网站| 久久久97精品| 国产成人午夜视频网址| 91禁国产网站| 欧美激情精品久久久久久蜜臀| 日韩精品中文字幕在线播放| 欧美极品少妇xxxxⅹ喷水| 国产精品视频久久久| 成人亚洲激情网| 亚洲国产精品小视频| 久久久久久999| 亚洲亚裔videos黑人hd| 亚洲自拍偷拍在线| 亚洲综合第一页| 欧美黑人xxxⅹ高潮交| 欧美成人午夜免费视在线看片| 中文字幕少妇一区二区三区| 亚洲精品美女久久| 国外日韩电影在线观看| 久久成人人人人精品欧| 国产亚洲欧洲在线| 久热精品在线视频| 国产精品激情av在线播放| 亚洲影院高清在线| 国产97免费视| 日韩最新免费不卡| 国产一区二区三区视频在线观看| 亚洲三级黄色在线观看| 亚洲自拍高清视频网站| 国产精品盗摄久久久| 欧美综合一区第一页| 综合激情国产一区| 欧美在线观看网站| 国产精品久久久久99| 国产精品视频1区| 中文字幕av一区中文字幕天堂| 日韩欧美精品中文字幕| 91po在线观看91精品国产性色| 亚洲另类激情图| 国产在线观看精品| 欧美高清视频一区二区| 91精品在线观| 亚洲韩国青草视频| 久久视频在线观看免费| 色偷偷888欧美精品久久久| 5278欧美一区二区三区| 成人黄色av网| 国产精品亚洲第一区| 久久久国产精品一区| 国产欧美一区二区三区久久| 欧美性猛交丰臀xxxxx网站| 欧美激情啊啊啊| 久久免费视频在线| 欧美精品一区二区三区国产精品| 亚洲直播在线一区| 色999日韩欧美国产| 97在线观看视频国产| 色悠悠国产精品| 欧美视频精品一区| 日韩欧美国产黄色| 久国内精品在线| 国产日韩欧美在线播放| 亚洲精品国产精品国自产在线| 亚洲久久久久久久久久久| 中文字幕精品一区二区精品| 欧美精品videofree1080p| 久久精品国产成人| 日韩在线观看免费高清| 国产精品观看在线亚洲人成网| 欧美日韩一区二区三区| 日韩av电影国产| 国产精品爽黄69天堂a| 4388成人网| 亚洲色图在线观看| 51色欧美片视频在线观看| 国语自产精品视频在线看一大j8| 欧美在线视频网| 国产福利精品视频| 国产美女搞久久| 国产一区二区三区免费视频| 亚洲精品日韩丝袜精品| 国产精品久久久久91| 久久99精品视频一区97| 中文字幕欧美日韩va免费视频| 欧美视频二区36p| 伊人成人开心激情综合网| 亚洲黄色av女优在线观看| 国语自产在线不卡| 亚洲国产精品视频在线观看| 亚洲男女自偷自拍图片另类| 色哟哟网站入口亚洲精品| 久久香蕉国产线看观看av| 中文字幕不卡在线视频极品| 最近2019中文字幕大全第二页| 欧美激情第1页| 主播福利视频一区| 亚洲免费伊人电影在线观看av| 大伊人狠狠躁夜夜躁av一区| 日韩在线中文字幕| 色爱av美腿丝袜综合粉嫩av| 91久久精品久久国产性色也91| 欧美成人在线免费视频| 亚洲香蕉在线观看| 国产精品2018| 久热国产精品视频| 中文国产成人精品久久一| 岛国av一区二区在线在线观看| 日韩在线视频免费观看高清中文| 亚洲欧美日韩视频一区| 亚洲成年人在线| www.亚洲免费视频| 欧美日韩第一视频| 国产精品久久久久久久久久免费| 国产精品亚洲аv天堂网| 国产亚洲福利一区| 欧美高清理论片| 日本不卡高字幕在线2019| 精品少妇一区二区30p| 久久久精品电影| 日韩精品中文字幕在线播放| 亚洲人成五月天| 亚洲丝袜在线视频| 欧美一区二区三区四区在线| 欧美大片在线免费观看| 亚洲三级 欧美三级| 奇米四色中文综合久久| 高潮白浆女日韩av免费看| 国产美女精彩久久|