MyBatis總結(jié)进泼。

java連接數(shù)據(jù)庫(kù)一共有三種方式以及其優(yōu)缺點(diǎn):

三種數(shù)據(jù)庫(kù)連接的比較

MyBatis層次結(jié)構(gòu)圖:

mybatis架構(gòu)圖
  1. Mybatis是一個(gè)半自動(dòng)化的數(shù)據(jù)庫(kù)持久層(ORM)框架任岸,支持自定義SQL栋齿,存儲(chǔ)過(guò)程及高級(jí)映射苗胀,消除了幾乎全部的JDBC代碼及返回結(jié)果集合參數(shù)的手工設(shè)置。之所以稱它為半自動(dòng)瓦堵,是因?yàn)樗枰謩?dòng)匹配提供POJO基协、SQL和映射關(guān)系。而全表映射的Hibernate只需要提供POJO和映射關(guān)系即可菇用。

  2. Mybatis的基本構(gòu)成:
    SqlSessionFactoryBuilder(構(gòu)造器):根據(jù)配置信息或代碼來(lái)生成SqlSessionFactory(工廠接口)堡掏。
    SqlSeesionFactory(工廠接口):依靠工廠接口來(lái)生成SqlSession(會(huì)話)。
    SqlSession(會(huì)話):是一個(gè)既可以發(fā)送SQL去執(zhí)行并返回結(jié)果刨疼,也可以獲取Mapper的接口泉唁。
    SQLMapper:它是Mybatis新設(shè)計(jì)的組件。由一個(gè)JAVA接口和XML文件(或注解)構(gòu)成的揩慕,需要給出對(duì)應(yīng)的SQL和映射規(guī)則亭畜。它負(fù)責(zé)發(fā)送SQL去執(zhí)行,并返回結(jié)果迎卤。

  3. Mybatis的相關(guān)配置:
    代碼清單:Mybatis配置XML文件的層次結(jié)構(gòu)

    mybatis配置文件及運(yùn)行流程

  • properties元素:是一個(gè)配置屬性的元素拴鸵,讓我們能在配置文件的上下文中使用它。
  • seetings設(shè)置:在Mybatis中最復(fù)雜的配置蜗搔,同時(shí)也是最為重要的配置內(nèi)容之一劲藐。在大部分的時(shí)候不需要配置它或者只需要配置少數(shù)幾項(xiàng)即可。在后面講會(huì)進(jìn)行講解樟凄。
  • typeAliases別名:是一個(gè)指代的名稱聘芜。該名稱可在Mybatis上下文中使用。別名在Mybatis里面分為系統(tǒng)自定義別名和自定義別名缝龄。注意汰现,在Mybatis中別名不區(qū)分大小寫。
  • typeHandler類型處理器:與typeAliases一樣叔壤,分為系統(tǒng)自定義和用戶自定義兩種瞎饲。typeHandler常用的配置為java類型(javaType)和JDBC類型(jdbcType)。typeHandler允許根據(jù)項(xiàng)目的需要自定義設(shè)置java傳遞到數(shù)據(jù)庫(kù)的參數(shù)中炼绘,或者從數(shù)據(jù)庫(kù)讀出數(shù)據(jù)嗅战。
  • objectFactory對(duì)象工廠:當(dāng)Mybatis在構(gòu)建一個(gè)結(jié)果返回的時(shí)候,都會(huì)使用objectFactory(對(duì)象工廠)去構(gòu)建POJO俺亮,在Mybatis中可以定制自己的對(duì)象工廠驮捍。
  • plugins插件:使用插件將覆蓋一些Mybatis內(nèi)部核心對(duì)象的行為疟呐。
    envirnoments配置環(huán)境:可以注冊(cè)多個(gè)數(shù)據(jù)源(dataSource)。每一個(gè)數(shù)據(jù)源分兩大部分:一個(gè)是數(shù)據(jù)庫(kù)源的配置厌漂,另一個(gè)是數(shù)據(jù)庫(kù)事務(wù)(transactionManager)的配置萨醒。
  • dataSource數(shù)據(jù)源:實(shí)現(xiàn)方式有以下3種:UNPOOLED、POOLED苇倡、JNDI富纸。
  • databaseIdProvider數(shù)據(jù)庫(kù)廠商標(biāo)識(shí):作用是指定SQL到對(duì)應(yīng)的數(shù)據(jù)庫(kù)廠商提供的數(shù)據(jù)庫(kù)中運(yùn)行。
  • mapper映射器:是Mybatis最復(fù)雜旨椒、最核心的組件晓褪。引入映射器有以下方法:文件路徑引入、包名引入综慎、類注冊(cè)引入涣仿、接口類引入。在后面講重點(diǎn)介紹示惊。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末好港,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子米罚,更是在濱河造成了極大的恐慌钧汹,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件录择,死亡現(xiàn)場(chǎng)離奇詭異拔莱,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)隘竭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門塘秦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人动看,你說(shuō)我怎么就攤上這事尊剔。” “怎么了弧圆?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵赋兵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我搔预,道長(zhǎng),這世上最難降的妖魔是什么叶组? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任拯田,我火速辦了婚禮,結(jié)果婚禮上甩十,老公的妹妹穿的比我還像新娘船庇。我一直安慰自己吭产,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布鸭轮。 她就那樣靜靜地躺著臣淤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窃爷。 梳的紋絲不亂的頭發(fā)上邑蒋,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音按厘,去河邊找鬼医吊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛逮京,可吹牛的內(nèi)容都是我干的卿堂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼懒棉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼草描!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起策严,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤穗慕,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后享钞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體揍诽,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年栗竖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了暑脆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡狐肢,死狀恐怖添吗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情份名,我是刑警寧澤碟联,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站僵腺,受9級(jí)特大地震影響鲤孵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辰如,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一普监、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦凯正、人聲如沸毙玻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)桑滩。三九已至,卻和暖如春允睹,著一層夾襖步出監(jiān)牢的瞬間运准,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工擂找, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戳吝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓贯涎,卻偏偏與公主長(zhǎng)得像听哭,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子塘雳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

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

  • 1. 簡(jiǎn)介 1.1 什么是 MyBatis 陆盘? MyBatis 是支持定制化 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射的優(yōu)秀的...
    笨鳥慢飛閱讀 5,455評(píng)論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理败明,服務(wù)發(fā)現(xiàn)隘马,斷路器,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • Java數(shù)據(jù)持久化之mybatis 一. mybatis簡(jiǎn)介 1.1 原始的JDBC操作: Java 通過(guò) Jav...
    小Q逛逛閱讀 4,902評(píng)論 0 16
  • 前塵往事云煙過(guò) 今生正當(dāng)下 期后世-就這么深信不疑的相信著吧
    落初醒閱讀 232評(píng)論 0 0
  • 我在外流浪的心妻顶,歇息好我就去找你酸员。你在前,我在后讳嘱,疲憊不屬于你幔嗦。因?yàn)槟闶呛鷹睿憔驮撌鼙M風(fēng)沙沥潭,日曬和雨打邀泉,你就該把...
    47c6d7bc4009閱讀 173評(píng)論 2 1