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

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

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

2019-11-11 07:34:39
字體:
來源:轉載
供稿:網友

上篇文章《深入淺出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
亚洲美女中文字幕| 日韩欧美在线视频| 伊人久久综合97精品| 国内成人精品视频| 在线一区二区日韩| 久久久精品一区二区三区| 搡老女人一区二区三区视频tv| 日韩精品有码在线观看| 久久久999精品视频| 国产日韩中文字幕| 中文字幕在线看视频国产欧美| 欧美激情国产精品| 国产一区二区三区在线播放免费观看| 亚洲自拍欧美另类| 国产精品1区2区在线观看| 尤物99国产成人精品视频| www.国产精品一二区| 久久久久亚洲精品国产| 久久精品中文字幕电影| 91亚洲va在线va天堂va国| www.xxxx精品| 国产精品男人爽免费视频1| 欧美三级xxx| 伊人久久大香线蕉av一区二区| 亚洲成色777777女色窝| 在线观看不卡av| 国产精品一区二区在线| 大胆欧美人体视频| 成人观看高清在线观看免费| 国产精品视频最多的网站| 一本大道久久加勒比香蕉| 精品日本美女福利在线观看| 欧美性色xo影院| 国外色69视频在线观看| 欧美乱大交xxxxx另类电影| 中文字幕日韩视频| 国产精品第100页| 最近日韩中文字幕中文| 日韩美女视频免费在线观看| 日韩精品免费看| 日韩在线视频国产| 亚洲色图15p| 亚洲无av在线中文字幕| 亚洲精品电影网在线观看| 国产精品96久久久久久又黄又硬| 成人妇女淫片aaaa视频| 成人免费xxxxx在线观看| 日韩av在线免播放器| 综合国产在线观看| 色琪琪综合男人的天堂aⅴ视频| 免费97视频在线精品国自产拍| 国产亚洲免费的视频看| 日韩电影第一页| 亚洲欧美三级伦理| 91在线精品视频| 久久久成人的性感天堂| 亚洲色图av在线| 91网站在线免费观看| 亚洲免费成人av电影| 欧美国产精品va在线观看| 不卡av电影院| 一区二区欧美日韩视频| 欧美高清视频一区二区| 91久久久久久久久| 欧美第一黄网免费网站| 人人澡人人澡人人看欧美| 国产小视频国产精品| 亚洲国产日韩欧美在线99| 亚洲四色影视在线观看| 97人人爽人人喊人人模波多| 一本一本久久a久久精品牛牛影视| 欧美视频精品一区| 欧美精品激情在线| 欧美黄色成人网| 欧美激情亚洲一区| 国产91|九色| 中文字幕日韩在线播放| www.午夜精品| 97视频在线看| 国产大片精品免费永久看nba| 久久综合色88| 国产精品嫩草视频| 午夜精品三级视频福利| 伊人久久久久久久久久| 国产精品夫妻激情| 日韩av在线网址| 成人有码视频在线播放| 91视频国产精品| 中文字幕九色91在线| 久久久久亚洲精品成人网小说| 亚洲国产精久久久久久| 国产一区二区美女视频| 亚洲成人精品久久| 91在线视频免费| 亚洲精品国产精品国自产观看浪潮| 一级做a爰片久久毛片美女图片| 91在线看www| 日韩av中文字幕在线| 26uuu另类亚洲欧美日本一| 国产精品久久久久av| 国产精品青草久久久久福利99| 国产成人精品在线播放| 亚洲精品乱码久久久久久金桔影视| 亚洲激情中文字幕| 午夜精品久久久99热福利| 久久国产精品久久久久| 国产精品视频免费在线观看| 97超级碰在线看视频免费在线看| 日本19禁啪啪免费观看www| 国内偷自视频区视频综合| zzijzzij亚洲日本成熟少妇| 日韩中文av在线| 1769国内精品视频在线播放| 亚洲激情视频在线播放| 亚洲黄色片网站| 色黄久久久久久| 欧美一区二区三区四区在线| 日韩精品视频观看| 国产精品久久在线观看| 亚洲一区二区久久久| 亚洲色图狂野欧美| 亚洲精品国产精品国自产观看浪潮| 国产精品美女www| 欧美xxxx做受欧美.88| 日韩欧美在线看| 91精品久久久久久久久青青| 国语自产在线不卡| 欧美成人精品一区二区三区| 国产成人高清激情视频在线观看| 成人精品aaaa网站| 日韩在线免费视频观看| 欧美精品情趣视频| 色七七影院综合| 精品久久久久久久久久ntr影视| 欧美黑人巨大精品一区二区| 日韩极品精品视频免费观看| 亚洲性猛交xxxxwww| 久久成人精品视频| 色青青草原桃花久久综合| 全亚洲最色的网站在线观看| 国产精品对白刺激| 亚洲国产一区二区三区四区| 色偷偷91综合久久噜噜| 久久精品中文字幕电影| 国产在线播放91| 成人黄色av播放免费| www亚洲精品| 亚洲有声小说3d| 欧美极品少妇xxxxⅹ免费视频| 欧美超级乱淫片喷水| 日韩欧美福利视频| 丝袜亚洲另类欧美重口| 久久亚洲一区二区三区四区五区高| 永久免费看mv网站入口亚洲| 亚洲一二三在线| 久久视频中文字幕| 亚洲在线视频福利| 激情亚洲一区二区三区四区| 成人国产精品日本在线| 北条麻妃在线一区二区| 久久亚洲春色中文字幕| 国产精品99久久久久久白浆小说| 蜜月aⅴ免费一区二区三区| 亚洲国产精品成人av|