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

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

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

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

上篇文章《深入淺出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個節點中比較重要的幾個節點的源碼,看看在解析這些節點的時候,到底做了些什么。


上一篇:VBA 偏移 Offset

下一篇:Centos Apache安裝

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频资源| 国产精品视频成人| 国产一区二区美女视频| 91人人爽人人爽人人精88v| 亚洲欧美日韩国产中文专区| 日韩中文字幕在线看| 日韩欧美主播在线| 欧美色播在线播放| 91天堂在线视频| 亚洲aa在线观看| 亚洲激情成人网| 成人乱人伦精品视频在线观看| 亚洲第一网站男人都懂| 日韩在线观看网站| 68精品国产免费久久久久久婷婷| 国产精品久久色| 欧美日本国产在线| 一区二区三欧美| 欧美亚洲国产视频| 亚洲男人天堂古典| 91视频8mav| 久久精品免费电影| 成人在线激情视频| 91视频国产高清| 欧美电影《睫毛膏》| 欧美激情亚洲精品| 久久精品视频亚洲| 91精品国产91久久久久久不卡| 久久久久日韩精品久久久男男| 欧美电影免费观看高清完整| 国内免费精品永久在线视频| 亚洲国产精品高清久久久| 国产日韩换脸av一区在线观看| 亚洲精品久久久久久久久| 欧美自拍视频在线观看| 欧美成人午夜剧场免费观看| 久久久亚洲国产天美传媒修理工| 亚洲日本aⅴ片在线观看香蕉| 宅男66日本亚洲欧美视频| 亚洲精品日韩激情在线电影| 欧美xxxx18国产| 欧美高清电影在线看| 欧美理论电影在线播放| 亚洲最新av网址| 国产在线观看精品一区二区三区| 亚洲精品久久久久| 日韩有码片在线观看| 国产精品男人爽免费视频1| 国产欧美韩国高清| 亚洲欧美日韩在线一区| 亚洲最新av在线| 中文字幕亚洲情99在线| 欧美成人一区二区三区电影| 性色av一区二区三区在线观看| 国产精品视频白浆免费视频| 亚洲精品国产精品久久清纯直播| 亚洲第一页中文字幕| 日韩在线高清视频| 国产亚洲免费的视频看| 精品亚洲一区二区三区在线观看| 久久精品国产91精品亚洲| 福利一区福利二区微拍刺激| 中日韩美女免费视频网站在线观看| 国产精品久久久久久久美男| 欧美成人国产va精品日本一级| 亚洲精品久久7777777| 久久久久北条麻妃免费看| 欧美美女15p| 国模叶桐国产精品一区| 精品国产区一区二区三区在线观看| 92看片淫黄大片欧美看国产片| 欧美视频国产精品| 亚洲老板91色精品久久| 亚洲美女精品久久| 亚洲乱码国产乱码精品精天堂| 亚洲娇小xxxx欧美娇小| 日韩在线视频一区| 欧洲成人午夜免费大片| 欧美黑人巨大精品一区二区| 91亚洲精品久久久| 亚洲精品动漫100p| 精品中文字幕在线2019| 欧美视频在线观看 亚洲欧| 亚洲精品电影久久久| 久久91精品国产91久久久| 亚洲最大福利视频| 98精品国产高清在线xxxx天堂| 亚洲欧美日韩直播| 亚洲第一区在线| 欧美在线播放视频| 尤物九九久久国产精品的特点| 成人免费福利在线| 久久久久北条麻妃免费看| 久久久久久久久久久成人| 日韩av网站大全| 91久久国产综合久久91精品网站| 日韩精品在线播放| 97超级碰在线看视频免费在线看| 日韩电影中文字幕av| 91精品中国老女人| 日韩高清有码在线| 欧美视频免费在线| 亚洲人成在线电影| 亚洲一区第一页| 国产综合香蕉五月婷在线| 亚洲成人激情图| 国产精品夫妻激情| 日韩av一区在线观看| 91精品国产成人| 国产剧情日韩欧美| 日韩欧美在线视频| 国产欧美一区二区三区在线看| 亚洲国产成人精品久久| 久久久精品美女| 日韩欧美国产一区二区| 国产亚洲欧美aaaa| 伊人久久综合97精品| 国产精品99久久久久久白浆小说| 国产69精品久久久久久| 狠狠爱在线视频一区| 成人免费黄色网| 亚洲一区二区三区在线视频| 亚洲精品456在线播放狼人| 色综合影院在线| 77777少妇光屁股久久一区| 性日韩欧美在线视频| 国产一区二区三区日韩欧美| 亚洲另类欧美自拍| 91嫩草在线视频| 久久视频在线直播| 在线日韩欧美视频| 欧美性猛交xxxxx水多| 亚洲国产毛片完整版| 这里只有精品视频在线| 国产美女久久精品香蕉69| 亚洲精品视频网上网址在线观看| 欧美成人免费播放| 欧美片一区二区三区| 色婷婷成人综合| 精品国产成人在线| 在线观看国产欧美| 国产在线一区二区三区| 亚洲精品99久久久久中文字幕| 国产精品美女主播| 高清欧美电影在线| www.国产精品一二区| 色妞一区二区三区| 色综合色综合网色综合| 日韩欧美亚洲综合| 久久久这里只有精品视频| 亚洲成人黄色网| 亚洲精品一区二区网址| 欧美一区二区三区免费观看| 国产91成人在在线播放| 亚洲国产成人久久| 国产精品xxxxx| 精品亚洲夜色av98在线观看| 久久亚洲精品毛片| 国产精自产拍久久久久久| 91免费看片在线| 亚洲bt欧美bt日本bt| 疯狂做受xxxx高潮欧美日本| 中文字幕亚洲国产| 国产美女搞久久|