MyBatis介紹和架構(gòu)

MyBatis介紹

  1. MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code罪塔,并且改名為MyBatis,實質(zhì)上Mybatis對ibatis進(jìn)行一些改進(jìn)陌宿。

  2. MyBatis是一個優(yōu)秀的持久層框架岩梳,它對jdbc的操作數(shù)據(jù)庫的過程進(jìn)行封裝锰悼,使開發(fā)者只需要關(guān)注 SQL 本身敌土,而不需要花費精力去處理例如注冊驅(qū)動、創(chuàng)建connection哥桥、創(chuàng)建statement碍沐、手動設(shè)置參數(shù)狸捅、結(jié)果集檢索等jdbc繁雜的過程代碼。

  3. Mybatis通過xml或注解的方式將要執(zhí)行的各種statement(statement抢韭、preparedStatemnt薪贫、CallableStatement)配置起來,并通過java對象和statement中的sql進(jìn)行映射生成最終執(zhí)行的sql語句刻恭,最后由mybatis框架執(zhí)行sql并將結(jié)果映射成java對象并返回瞧省。

Mybatis架構(gòu)

  • mybatis配置
    SqlMapConfig.xml,此文件作為mybatis的全局配置文件鳍贾,配置了mybatis的運行環(huán)境等信息鞍匾。
    mapper.xml文件即sql映射文件,文件中配置了操作數(shù)據(jù)庫的sql語句骑科。此文件需要在SqlMapConfig.xml中加載橡淑。

  • 通過mybatis環(huán)境等配置信息構(gòu)造SqlSessionFactory即會話工廠

  • 由會話工廠創(chuàng)建sqlSession即會話,操作數(shù)據(jù)庫需要通過sqlSession進(jìn)行咆爽。

  • mybatis底層自定義了Executor執(zhí)行器接口操作數(shù)據(jù)庫梁棠,Executor接口有兩個實現(xiàn),一個是基本執(zhí)行器斗埂、一個是緩存執(zhí)行器符糊。

  • Mapped Statement也是mybatis一個底層封裝對象,它包裝了mybatis配置信息及sql映射信息等呛凶。mapper.xml文件中一個sql對應(yīng)一個Mapped Statement對象男娄,sql的id即是Mapped statement的id。

  • Mapped Statement對sql執(zhí)行輸入?yún)?shù)進(jìn)行定義漾稀,包括HashMap模闲、基本類型、pojo崭捍,Executor通過Mapped Statement在執(zhí)行sql前將輸入的java對象映射至sql中尸折,輸入?yún)?shù)映射就是jdbc編程中對preparedStatement設(shè)置參數(shù)。

  • Mapped Statement對sql執(zhí)行輸出結(jié)果進(jìn)行定義殷蛇,包括HashMap翁授、基本類型拣播、pojo,Executor通過Mapped Statement在執(zhí)行sql后將輸出結(jié)果映射至java對象中收擦,輸出結(jié)果映射過程相當(dāng)于jdbc編程中對結(jié)果的解析處理過程。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谍倦,一起剝皮案震驚了整個濱河市塞赂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昼蛀,老刑警劉巖宴猾,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異叼旋,居然都是意外死亡仇哆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門夫植,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讹剔,“玉大人,你說我怎么就攤上這事详民⊙忧罚” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵沈跨,是天一觀的道長由捎。 經(jīng)常有香客問我,道長饿凛,這世上最難降的妖魔是什么狞玛? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮涧窒,結(jié)果婚禮上心肪,老公的妹妹穿的比我還像新娘。我一直安慰自己杀狡,他們只是感情好蒙畴,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呜象,像睡著了一般膳凝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上恭陡,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天蹬音,我揣著相機(jī)與錄音,去河邊找鬼休玩。 笑死著淆,一個胖子當(dāng)著我的面吹牛劫狠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播永部,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼独泞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苔埋?” 一聲冷哼從身側(cè)響起懦砂,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎组橄,沒想到半個月后荞膘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡玉工,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年羽资,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片遵班。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡屠升,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出费奸,到底是詐尸還是另有隱情弥激,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布愿阐,位于F島的核電站微服,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏缨历。R本人自食惡果不足惜以蕴,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辛孵。 院中可真熱鬧丛肮,春花似錦、人聲如沸魄缚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冶匹。三九已至习劫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間嚼隘,已是汗流浹背诽里。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留飞蛹,地道東北人谤狡。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓灸眼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親墓懂。 傳聞我的和親對象是個殘疾皇子焰宣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL拒贱、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 5,453評論 0 4
  • 1 引言# 本文主要講解JDBC怎么演變到Mybatis的漸變過程宛徊,重點講解了為什么要將JDBC封裝成Mybait...
    七寸知架構(gòu)閱讀 76,441評論 36 980
  • 1 Mybatis入門 1.1 單獨使用jdbc編程問題總結(jié) 1.1.1 jdbc程序 上邊使用jdbc的原始方法...
    暖熊熊閱讀 334評論 0 1
  • Java數(shù)據(jù)持久化之mybatis 一. mybatis簡介 1.1 原始的JDBC操作: Java 通過 Jav...
    小Q逛逛閱讀 4,901評論 0 16
  • 寂夜襲來,碎事牽絆逻澳。 身系紅塵,以是燭物暖呕。 既以非己斜做,悲不成悲。 前緣孽債湾揽,何時能了瓤逼。
    師少婷閱讀 428評論 1 3