精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Mybatis核心類SqlSessionFactory,看完我悟了

開發(fā) 前端
SqlSessionFactory 的創(chuàng)建過程就講完了,總的來說就是一個封裝了配置文件的工廠類。那么得到了 SqlSessionFactory 這個工廠對象,接下來干嘛?生產 SqlSession,然后通過 SqlSession 進行數(shù)據(jù)庫的增刪改查操作。

哈嘍,大家好,我是指北君。

請大家搬好小板凳,指北君將會用最通俗易懂,圖文并茂的方式,給大家深入剖析 Mybatis 的實現(xiàn)原理。

本篇文章我們首先解析 SqlSessionFactory 的創(chuàng)建過程。

1、實例代碼

在實例代碼中,我們在測試類中寫了一個 init() 方法,里面包括了 SqlSessionFactory 的構建,分為兩步。

第一步:讀取配置文件 mybatis-config.xml 輸入流

第二步:根據(jù)輸入流構建 SqlSessionFactory;

public void init(){
//定義mybatis全局配置文件
String resource = "mybatis-config.xml";
//加載 mybatis 全局配置文件
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
e.printStackTrace();
}
//構建sqlSession的工廠
sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

}

沒什么難的,去掉 try-catch,也就兩行代碼。

InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

是的,那只是你以為的兩行代碼,其實......

話不多說,指北君就來給大家揭秘這冰山下面的東西。

2、代碼剖析

根據(jù)上面的時序圖,我們分析根據(jù)源碼分析每個步驟。

①、獲取配置文件輸入流

InputStream inputStream = Resources.getResourceAsStream("mybatis.config.xml");

這里沒什么好說的,就是獲取配置文件的輸入流。

②、build(in)

這里的 in 就是上一步獲取的輸入流 inputStream。

public SqlSessionFactory build(InputStream inputStream){
return build(inputStream, null, null);
}

在進入到 build 方法:

public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties){
try {
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);
return build(parser.parse());
} catch (Exception e) {
throw ExceptionFactory.wrapException("Error building SqlSession.", e);
} finally {
ErrorContext.instance().reset();
try {
inputStream.close();
} catch (IOException e) {
// Intentionally ignore. Prefer previous error.
}
}
}

③、XMLConfigBuilder(in)

這一段代碼是為了解析我們的配置文件,配置文件是 XML形式 ,我在之前的博客介紹過解析 XML 的幾種方式。

一種是基于樹的結構來解析的稱為DOM;另一種是基于事件流的形式稱為SAX和(StAX)

兩者各有優(yōu)缺點,我這里不做詳細說明,想了解的可以看我之前的文章。

而 Mybatis 使用的是 DOM 形式,并結合 XPath 來解析配置文件。

④、parse()

public Configuration parse(){
if (this.parsed) {
throw new BuilderException("Each XMLConfigBuilder can only be used once.");
} else {
this.parsed = true;
this.parseConfiguration(this.parser.evalNode("/configuration"));
return this.configuration;
}
}

從 /configuration 標簽處開始解析。然后我們進入到 this.parseConfiguration() 方法中:

private void parseConfiguration(XNode root){
try {
this.propertiesElement(root.evalNode("properties"));
Properties settings = this.settingsAsProperties(root.evalNode("settings"));
this.loadCustomVfs(settings);
this.loadCustomLogImpl(settings);
this.typeAliasesElement(root.evalNode("typeAliases"));
this.pluginElement(root.evalNode("plugins"));
this.objectFactoryElement(root.evalNode("objectFactory"));
this.objectWrapperFactoryElement(root.evalNode("objectWrapperFactory"));
this.reflectorFactoryElement(root.evalNode("reflectorFactory"));
this.settingsElement(settings);
this.environmentsElement(root.evalNode("environments"));
this.databaseIdProviderElement(root.evalNode("databaseIdProvider"));
this.typeHandlerElement(root.evalNode("typeHandlers"));
this.mapperElement(root.evalNode("mappers"));
} catch (Exception var3) {
throw new BuilderException("Error parsing SQL Mapper Configuration. Cause: " + var3, var3);
}
}

看到這是不是很熟悉了,這不就是mybatis-config.xml 配置文件里面的各個標簽名嘛,是的,這就是解析該文件,然后全部放在 configuration 對象中。需要注意的是,這里的 configuration 對象不僅包括 mybatis-config.xml 文件內容,也包括 xxxMapper.xml 文件內容。

圖片

⑤、build(configuration)

public SqlSessionFactory build(Configuration config){
return new DefaultSqlSessionFactory(config);
}

就是去 new 了一個 DefaultSqlSessionFactory 對象,將 configuration 作為參數(shù)。

⑥、DefaultSqlSessionFactory(configuration)

public DefaultSqlSessionFactory(Configuration configuration){
this.configuration = configuration;
}

3、總結

自此,SqlSessionFactory 的創(chuàng)建過程就講完了,總的來說就是一個封裝了配置文件的工廠類。那么得到了 SqlSessionFactory 這個工廠對象,接下來干嘛?生產 SqlSession,然后通過 SqlSession 進行數(shù)據(jù)庫的增刪改查操作。

沒錯,接下來,指北君將給大家介紹 SqlSession 的交互過程,這也是 Mybatis 里面最重要的一個對象。

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2020-12-17 08:02:42

MyBatis插件框架

2024-08-05 01:23:41

SQL語句MySQL

2021-08-18 10:30:10

GitHub程序員論文

2020-12-15 08:03:57

Mybatis配置文件

2023-10-31 08:01:48

Mybatis參數(shù)jdbcurl?

2021-06-16 00:57:16

JVM加載機制

2023-03-09 13:39:14

數(shù)據(jù)比賽

2025-02-17 09:22:16

MySQLSQL語句

2021-02-06 09:07:58

字節(jié)跳動消息

2022-08-05 13:03:53

微軟Windows 11

2023-07-29 22:02:06

MyBatis數(shù)據(jù)庫配置

2018-06-08 14:06:02

MVP架構Android

2019-01-23 13:04:09

QLCNAND閃存

2020-03-03 20:04:30

SSD硬盤閃存

2018-03-09 10:02:23

iPhone X下巴蘋果

2013-06-20 11:11:00

程序員經(jīng)理

2024-06-27 09:24:55

2021-11-05 11:10:13

MyBatisSQL查詢

2022-10-20 18:43:32

C語言golang安全
點贊
收藏

51CTO技術棧公眾號

成人免费黄色网| 亚洲天堂网站在线观看视频| 久久久久久久久久久99| 天天操天天操天天操| 久久久久久久高潮| 精品国产美女在线| 国产精品成人免费一区久久羞羞| av中文字幕在线看| 久久久精品国产免费观看同学| 国产精品扒开腿做| 欧美三级日本三级| 亚洲动漫精品| 5858s免费视频成人| 欧美人与动牲交xxxxbbbb| 日韩在线免费看| 极品少妇xxxx精品少妇偷拍| 97国产精品久久| 毛片视频免费播放| 日韩高清三区| 欧美精品v日韩精品v韩国精品v| 日韩五码在线观看| 老司机精品视频在线观看6| 9色porny自拍视频一区二区| 成人在线播放av| 男人天堂2024| 精品91视频| www.亚洲免费视频| 美女久久久久久久久久| 亚洲91网站| 欧美日韩久久久| 黄色a级片免费| 国产精品偷拍| 亚洲欧美另类图片小说| 色播五月综合| 奇米影视888狠狠狠777不卡| 国产成人亚洲综合a∨婷婷| 国产精品老女人精品视频| 日韩欧美视频在线免费观看| 一个色综合网| 日韩在线视频国产| 欧美人与禽zoz0善交| 久久精品国产亚洲5555| 日韩欧美高清在线| 久热在线视频观看| 成人自拍视频网| 色综合天天综合在线视频| 精品人妻少妇一区二区| a视频在线观看免费| 国产精品欧美综合在线| 欧美一区二区在线视频观看| 隣の若妻さん波多野结衣| 久久97超碰色| 国产精品久久久久久久久男| 91视频久久久| 老司机午夜免费精品视频 | 成人性生交大片免费看视频直播 | 老司机福利在线视频| 中文字幕不卡在线| 色中色综合成人| 成人福利在线| 国产精品午夜在线| 亚洲欧美电影在线观看| av黄色在线观看| 国产精品美女久久久久av爽李琼| 午夜欧美性电影| 日本中文字幕视频在线| 亚洲欧美自拍偷拍| 丰满女人性猛交| 色综合999| 午夜久久久久久久久| 欧美 日本 亚洲| 欧美电影免费看| 欧美午夜不卡在线观看免费| 国产九九热视频| 四虎精品一区二区免费| 日韩一区二区免费视频| 久草免费资源站| 欧洲亚洲成人| 亚洲日韩欧美视频| 久久国产高清视频| 亚洲第一精品影视| 国产精品jvid在线观看蜜臀| 中文字幕一二区| 国产乱码精品一区二区三区av| 91久久久一线二线三线品牌| 五月婷婷在线观看视频| 国产欧美日韩在线| 路边理发店露脸熟妇泻火| 91黄页在线观看| 在线观看日韩电影| 中文字幕在线视频一区二区三区| 给我免费播放日韩视频| 亚洲男人第一av网站| 熟女少妇a性色生活片毛片| 亚洲五月婷婷| 国产精品视频自在线| 精品国产乱码久久久久久蜜臀网站| 成人国产在线观看| 午夜免费电影一区在线观看| 国内高清免费在线视频| 欧美主播一区二区三区| 香蕉久久久久久av成人| 国产精品美女久久久久久不卡| 日韩在线视频线视频免费网站| 精品久久免费视频| 久久精品国产秦先生| 国产精品免费视频一区二区| 国产在线你懂得| 亚洲一区中文日韩| 国产成人黄色网址| 精品国产一区二区三区成人影院 | 成人黄色在线电影| 欧美午夜丰满在线18影院| 欧美性受xxxxxx黑人xyx性爽| 欧美亚洲大陆| 久久夜色精品国产欧美乱| 狠狠人妻久久久久久| 国产伦精一区二区三区| 日本在线成人一区二区| 2019中文字幕在线电影免费| 在线播放91灌醉迷j高跟美女 | 国产suv精品一区| 日韩亚洲欧美成人| 亚洲综合久久网| 丰满亚洲少妇av| 亚洲欧美精品| 性高爱久久久久久久久| 亚洲黄页网在线观看| 久久国产精品波多野结衣av| 另类小说一区二区三区| 欧美极品jizzhd欧美| a毛片不卡免费看片| 日韩视频不卡中文| 一级片一级片一级片| 免费在线看一区| 欧美主播一区二区三区美女 久久精品人| 怡红院红怡院欧美aⅴ怡春院| 欧美亚洲日本一区| 欧美 日韩 国产 成人 在线观看| 亚洲青涩在线| aa成人免费视频| av在线下载| 欧美剧在线免费观看网站| 欧美激情 一区| 日韩激情在线观看| 欧美在线视频二区| 怡红院成人在线| 亚洲日本中文字幕免费在线不卡| 草久视频在线观看| 99在线视频精品| 欧美牲交a欧美牲交| 老牛精品亚洲成av人片| 国内精品久久影院| 色欲av永久无码精品无码蜜桃| 亚洲一区二区黄色| 伊人网综合视频| 99亚洲一区二区| 精品亚洲一区二区三区四区五区高| 黑人玩欧美人三根一起进| 欧美成人综合网站| 国产午夜福利片| aaa欧美色吧激情视频| 六月丁香婷婷激情| 欧美伦理影院| 国产欧美一区二区白浆黑人| 黄在线免费观看| 91精品国产综合久久精品麻豆| 亚洲波多野结衣| 国产精品亚洲一区二区三区妖精 | 91超碰在线电影| 26uuu亚洲电影在线观看| 日韩三级视频中文字幕| 久久久久久久久97| 99精品欧美一区二区三区小说| 99精品美女| 国产亚洲精品中文字幕| www.国产区| 经典一区二区| 国产在线拍揄自揄视频不卡99| 免费av网站在线看| 欧美成人精品二区三区99精品| 精品无码m3u8在线观看| 97久久超碰精品国产| 中文字幕乱码人妻综合二区三区| 国产欧美日韩精品一区二区免费| 国产欧美精品在线| 丁香花高清在线观看完整版| 亚洲激情国产精品| 国产九色91回来了| ...av二区三区久久精品| 欧美日韩一区二区区别是什么 | 最近2019年好看中文字幕视频| 国产日韩欧美视频在线观看| 亚洲超丰满肉感bbw| 久久久久亚洲av成人无码电影| 美国毛片一区二区| 精品国产一区二区三区无码| 九九热线有精品视频99| 成人性生交大片免费观看嘿嘿视频 | 成人性色生活片免费看爆迷你毛片| 欧美一级在线看| 久久影院100000精品| 国产精品国模大尺度私拍| 一呦二呦三呦精品国产| 欧美人交a欧美精品| 精品电影在线| 欧美成人一区二区三区在线观看| 精品国产xxx| 亚洲精品国产精华液| 加勒比综合在线| 国产成人精品亚洲777人妖| 免费在线观看日韩视频| 欧美国产另类| 日韩国产高清一区| gogo久久日韩裸体艺术| 国产日韩精品电影| 中文av在线全新| 九九视频这里只有精品 | 久久综合网色—综合色88| 91小视频在线播放| 久久午夜精品| 丰满少妇久久久| 亚洲一级淫片| 亚洲国产欧美一区二区三区不卡| 国产精品色呦| 91视频99| 国产精品美女久久久久| 国产精品十八以下禁看| 热色播在线视频| 久久久免费精品| av在线app| 日韩色av导航| 一广人看www在线观看免费视频| 日韩精品极品毛片系列视频| 亚洲老妇色熟女老太| 555夜色666亚洲国产免| 久草热在线观看| 日韩欧美中文第一页| 日韩黄色一级大片| 一区二区三区 在线观看视频| 永久av免费网站| 日本一区二区视频在线观看| 国产伦精品一区二区三区妓女| av不卡在线播放| 性高潮免费视频| 粉嫩av一区二区三区在线播放 | 国产成人在线视频网站| 涩涩网站在线看| 九九国产精品视频| 免费在线观看污网站| 精品制服美女丁香| 中文字幕第66页| 国产麻豆精品theporn| 午夜剧场在线免费观看| 老司机精品视频导航| 中文久久久久久| 免播放器亚洲一区| 色播五月激情五月| 激情图片小说一区| 午夜xxxxx| 国产精品一区久久久久| 日本一区二区三区在线免费观看| 国产一区二区三区黄视频| 婷婷中文字幕在线观看| 国产伦精品一区二区三区免费| 一级做a爱视频| 国产成人免费在线观看不卡| 中文字幕亚洲影院| 国产成人h网站| 污污免费在线观看| 91一区二区三区在线观看| 精品人妻一区二区三区日产乱码卜| 99re这里都是精品| 色一情一交一乱一区二区三区| 国产精品区一区二区三| 91porn在线视频| 亚洲一区二区三区自拍| 九九热在线视频播放| 色就色 综合激情| 中文字幕一区二区三区四区免费看 | 亚洲天堂网在线观看| 日本在线免费播放| 欧美国产亚洲视频| 亚洲最大网站| 成人xxxx视频| 精品精品精品| 亚洲国产精品123| 欧美国产高清| 免费在线观看的毛片| 久久91精品国产91久久小草| 娇妻高潮浓精白浆xxⅹ| 久久久99精品免费观看| www欧美com| 都市激情亚洲色图| 一区二区三区在线免费观看视频| 日韩一级精品视频在线观看| 五月天福利视频| 色综合亚洲精品激情狠狠| 色老头在线观看| 国产成人欧美在线观看| 亚洲精品黑牛一区二区三区| 日本午夜精品一区二区| 欧美顶级大胆免费视频| 九九热只有这里有精品| 日韩成人免费在线| 伊人av在线播放| 日本一区二区三区dvd视频在线| 欧美日韩亚洲国产另类| 欧洲色大大久久| 亚洲精品久久久蜜桃动漫| 中文字幕亚洲综合久久| 男人天堂视频在线观看| 91中文在线视频| 国内成人自拍| 日韩a级在线观看| 美女一区二区三区| a视频免费观看| 亚洲在线观看免费视频| 国产一区二区在线不卡| 亚洲欧美在线第一页| 国产天堂在线播放视频| 国产日本欧美一区二区三区| 蜜桃一区二区三区| 免费高清一区二区三区| 九九在线精品视频| 欧美老女人性生活视频| 精品久久久久国产| 亚洲精品人妻无码| 欧美精品免费在线观看| 欧洲亚洲精品| 日本成人三级| 亚洲欧美视频| 欧美 变态 另类 人妖| 一区二区三区日韩欧美| 国产精品乱码一区二区| 亚洲午夜精品视频| 成人免费看视频网站| 久久综合婷婷综合| 伊人久久综合| 国内精品免费视频| 亚洲一区二区中文在线| www.色播.com| 精品少妇一区二区30p| www.久久草.com| 久久精品国产精品亚洲精品色| 久久精品国产999大香线蕉| 69xxx免费| 欧美日韩三级视频| 日本高清视频在线观看| 国产又爽又黄的激情精品视频 | 99久久久精品视频| 国产成人亚洲综合色影视| 免费视频一二三区| 日韩欧美高清在线| av影视在线看| 久久精品国产美女| 午夜一区在线| 人妻av无码一区二区三区| 欧美综合一区二区| 色网站免费在线观看| 成人精品视频99在线观看免费| 亚洲成人精品| 亚洲综合中文网| 亚洲国产精品综合小说图片区| 视频一区 中文字幕| 2019中文字幕在线观看| 国产亚洲一区二区三区不卡| 国产一级做a爰片久久| 国产精品电影一区二区| jizz中国少妇| 国内精品在线一区| 亚洲三级性片| 一道本视频在线观看| 自拍偷拍欧美精品| 亚洲精品人妻无码| 欧美在线激情网| 色777狠狠狠综合伊人| 亚洲三级在线视频| 精品女厕一区二区三区| 国产在线播放av| 亚洲最大福利视频网站| 亚洲国产网站| 中国女人特级毛片| 欧美一级免费观看| 国产伦理精品| 亚洲蜜桃av| 成人99免费视频| 中文字幕日韩经典| 久久久久国色av免费观看性色| 亚洲女娇小黑人粗硬| 免费成年人高清视频| 亚洲成av人片| 免费看美女视频在线网站 | 久久av资源| www.桃色.com| 色综合久久久久久久久| 成人免费视屏| 日本在线观看一区二区三区| 国产一区二区在线视频| 久久久久久不卡|