Mybatis

什么是 MyBatis 纬傲?

? ? ? ?MyBatis 是支持定制化 SQL勋锤、存儲過程以及高級映射的優(yōu)秀的持久層框架扛禽。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集鸭栖。MyBatis 可以對配置和原生Map使用簡單的 XML 或注解晶丘,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數(shù)據(jù)庫中的記錄浮梢。

特點:

? ? ? ?與JDBC相近的持久化框架跛十,運行效率高;提供靈活的查詢方式秕硝,但需要自己寫SQL語句芥映;不會自動進行級聯(lián)操作,需要使用SQL手動進行远豺;需要考慮入?yún)⒑统鰠⒌念愋图捌鋵?yīng)關(guān)系奈偏。

基礎(chǔ)使用:

導(dǎo)入mybatis和mysql-connector-java依賴。

配置mybatis:

? ? ? ?該配置可在官網(wǎng)上找到躯护,中文版>础!很容易上手棺滞。

<environments>:可有多個子<environment>裁蚁,default指向某一子<environment>。

<environment>:配置數(shù)據(jù)庫連接继准。

<transcationManager>:事務(wù)管理器配置枉证。

<dataSource>:配置數(shù)據(jù)庫連接。

<mappers>:配置JavaBean映射文件所在位置移必。

JavaBean文件映射配置:


UserDTO的JavaBean


UserDTO的映射文件

<mapper>:namespace屬性值不可少室谚,用于識別不同的數(shù)據(jù)庫操作。

<select>:查詢方法避凝,parameterType是入?yún)⒌念愋臀杼眩琑esultMap是最終的查詢結(jié)果。

<resultMap>:配置返回結(jié)果的屬性管削。

<id/>:表的主鍵屬性倒脓。

<result>:表的非主鍵屬性。

<association>:一對多關(guān)聯(lián)表的屬性含思。其中column為調(diào)用的查詢方法的入?yún)⑵槠琷avaType是關(guān)聯(lián)表的Bean對象甘晤。select是對應(yīng)的關(guān)聯(lián)表的查詢方法,組成為對應(yīng)JavaBean映射文件的namespace+ "." +<select>的id屬性值饲做,詳見下圖线婚。


BlogDTO的JavaBean



BlogDTO的映射文件

此例中user與blog是一對一關(guān)系、與photo是一對多關(guān)系盆均;blog與content塞弊、photo為一對多關(guān)系;content與photo是一對多關(guān)系泪姨。此處<collection>表示為對應(yīng)的JavaBean的集合游沿。


ContentDTO的映射文件

由于不需要反向查詢,因而注釋了該屬性肮砾。

ContentDTO的映射文件

由于content是一個集合诀黍,而photo也是一個集合,類似于多對多仗处,此處的查詢方法使用的是聯(lián)合查詢眯勾,否則會報錯。

此處的注釋是另一種實現(xiàn)婆誓,該方式將在下面進行介紹吃环。


PhotoDTO的映射配置


PhotoDTO的映射文件

測試類:


測試類代碼

首先獲取類加載器的輸入流從配置文件中讀取mybatis配置,然后獲取session(獲取session時的參數(shù)表示采用自動提交事務(wù)的方式洋幻,不推薦模叙!)。

調(diào)用selectOne方法鞋屈,第一個參數(shù)為對應(yīng)JavaBean的namespace值 + "." + <select>的id值范咨,第二個參數(shù)為其一參數(shù)方法的入?yún)ⅰ?/p>

xml配置的另一方式:

? ? ? ? ?將全部配置寫在同一個映射文件中:



由此其余映射文件可不需配置。

開啟緩存:

默認(rèn)開啟一級緩存厂庇,若需要開啟二級緩存渠啊,只需在對應(yīng)的映射文件中加入<cache/>標(biāo)簽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末权旷,一起剝皮案震驚了整個濱河市替蛉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拄氯,老刑警劉巖躲查,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異译柏,居然都是意外死亡镣煮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門鄙麦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來典唇,“玉大人镊折,你說我怎么就攤上這事〗橄危” “怎么了恨胚?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長炎咖。 經(jīng)常有香客問我赃泡,道長,這世上最難降的妖魔是什么乘盼? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任急迂,我火速辦了婚禮,結(jié)果婚禮上蹦肴,老公的妹妹穿的比我還像新娘。我一直安慰自己猴娩,他們只是感情好阴幌,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著卷中,像睡著了一般矛双。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蟆豫,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天议忽,我揣著相機與錄音,去河邊找鬼十减。 笑死栈幸,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的帮辟。 我是一名探鬼主播速址,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼由驹!你這毒婦竟也來了芍锚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤蔓榄,失蹤者是張志新(化名)和其女友劉穎并炮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甥郑,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡逃魄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了澜搅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嗅钻。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡皂冰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出养篓,到底是詐尸還是另有隱情秃流,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布柳弄,位于F島的核電站舶胀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏碧注。R本人自食惡果不足惜嚣伐,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望萍丐。 院中可真熱鬧轩端,春花似錦、人聲如沸逝变。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽壳影。三九已至拱层,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宴咧,已是汗流浹背根灯。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掺栅,地道東北人烙肺。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像氧卧,于是被迫代替她去往敵國和親茬高。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

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