web一體化:第九講 MyBatis框架_第1頁
web一體化:第九講 MyBatis框架_第2頁
web一體化:第九講 MyBatis框架_第3頁
web一體化:第九講 MyBatis框架_第4頁
web一體化:第九講 MyBatis框架_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MyBatis框架ORM系列一、開始MyBatis簡(jiǎn)介MyBatis是一個(gè)數(shù)據(jù)持久層(ORM)框架。把實(shí)體類和SQL語句之間建立了映射關(guān)系,是一種半自動(dòng)化的ORM實(shí)現(xiàn)。MyBatis的優(yōu)點(diǎn):1.基于SQL語法,簡(jiǎn)單易學(xué)。2.能了解底層組裝過程。 3.SQL語句封裝在配置文件中,便于統(tǒng)一管理與維護(hù),降低了程序的耦合度。4.程序調(diào)試方便。與傳統(tǒng)JDBC的比較減少了61%的代碼量最簡(jiǎn)單的持久化框架架構(gòu)級(jí)性能增強(qiáng)SQL代碼從程序代碼中徹底分離,可重用增強(qiáng)了項(xiàng)目中的分工增強(qiáng)了移植性JDBC 與 MyBatis直觀對(duì)比MyBatis 就是將上面這幾行代碼分解包裝:前兩行是對(duì)數(shù)據(jù)庫的數(shù)據(jù)源的管理包括事務(wù)管理

2、,3、4 兩行MyBatis通過配置文件來管理 SQL 以及輸入?yún)?shù)的映射,6、7、8 行MyBatis獲取返回結(jié)果到 Java 對(duì)象的映射,也是通過配置文件管理。 與Hibernate的對(duì)比 MyBatis1、是一個(gè)SQL語句映射的框架(工具)2、注重POJO與SQL之間的映射關(guān)系。不會(huì)為程序員在運(yùn)行期自動(dòng)生成 SQL 3、自動(dòng)化程度低、手工映射SQL,靈活程度高. 4、需要開發(fā)人員熟煉掌據(jù)SQL語句 Hibernate1、主流的ORM框架、提供了從 POJO 到數(shù)據(jù)庫表的全套映射機(jī)制2、會(huì)自動(dòng)生成全套SQL語句。3、因?yàn)樽詣?dòng)化程度高、映射配置復(fù)雜,api也相對(duì)復(fù)雜,靈活性低.4、開發(fā)人同不

3、必關(guān)注SQL底層語句開發(fā)MyBatis工作流程MyBatis工作流程核心 SqlSessionFactory介紹每個(gè)基于 MyBatis 的應(yīng)用都是以一個(gè) SqlSessionFactory 的實(shí)例為中心的。SqlSessionFactory 的實(shí)例可以通過 SqlSessionFactoryBuilder 獲得。而 SqlSessionFactoryBuilder 則可以從 XML 配置文件或一個(gè)預(yù)先定制的 Configuration 的實(shí)例構(gòu)建出 SqlSessionFactory 的實(shí)例。SqlSessionFactory 一旦被創(chuàng)建就應(yīng)該在應(yīng)用的運(yùn)行期間一直存在,沒有任何理由對(duì)它進(jìn)行清

4、除或重建。使用 SqlSessionFactory 的最佳實(shí)踐是在應(yīng)用運(yùn)行期間不要重復(fù)創(chuàng)建多次核心 SqlSession介紹SqlSession:每個(gè)線程都有自己的 SqlSession 實(shí)例, SqlSession 實(shí)例是不能被共享,也是不是線程安全的。WEB 框架中,應(yīng)該讓 SqlSession 跟隨 HTTP 請(qǐng)求的相似作用域。也就是說,在收到一個(gè) HTTP 請(qǐng)求過后,打開 SqlSession ,等返回一個(gè)回應(yīng)以后,立馬關(guān)掉這個(gè) SqlSession 。 關(guān)閉 SqlSession 是非常重要的。你必須要確保 SqlSession 在 finally 方法體中正常關(guān)閉??梢允褂孟旅娴臉?biāo)

5、準(zhǔn)方式來關(guān)閉:SqlSession session = sqlSessionFactory.openSession();try / do work finally session.close();使用MyBatis 進(jìn)行開發(fā)1:配置一個(gè)數(shù)據(jù)源2:構(gòu)建一個(gè)SqlSessionFactory3:定義實(shí)體bean,dao以及 mapping 文件4:定義掃描器5:加入事務(wù)控制二、sqlSessionFactory 配置mapperLocations:它表示我們的Mapper文件存放的位置,當(dāng)我們的Mapper文件跟對(duì)應(yīng)的Mapper接口處于同一位置的時(shí)候可以不用指定該屬性的值。configLocat

6、ion:用于指定Mybatis的配置文件位置。如果指定了該屬性,那么會(huì)以該配置文件的內(nèi)容作為配置信息構(gòu)建對(duì)應(yīng)的SqlSessionFactoryBuilder,但是后續(xù)屬性指定的內(nèi)容會(huì)覆蓋該配置文件里面指定的對(duì)應(yīng)內(nèi)容。typeAliasesPackage:它一般對(duì)應(yīng)我們的實(shí)體類所在的包,這個(gè)時(shí)候會(huì)自動(dòng)取對(duì)應(yīng)包中不包括包名的簡(jiǎn)單類名作為包括包名的別名。多個(gè)package之間可以用逗號(hào)或者分號(hào)等來進(jìn)行分隔。typeAliases:數(shù)組類型,用來指定別名的。指定了這個(gè)屬性后,Mybatis會(huì)把這個(gè)類型的短名稱作為這個(gè)類型的別名,前提是該類上沒有標(biāo)注Alias注解,否則將使用該注解對(duì)應(yīng)的值作為此種類型的別名。(value的值一定要是類的完全限定名) Dao 接口和xml文件關(guān)系一個(gè)實(shí)體類對(duì)應(yīng)一個(gè)接口,這個(gè)接口中定義該實(shí)體類的相關(guān)操作一個(gè)接口對(duì)應(yīng)一個(gè)跟他同名的xml文件Xml文件中的 操作id和接口中的函數(shù)要求同名參數(shù)類型要求一致xml文件的編寫 sql 可以重用的 SQL 塊,也可以被其他語句引用。 insert 映射插入語句 update 映射更新語句 delete 映射刪除語句 select 映射查詢語句Xml參數(shù)傳遞基本數(shù)據(jù)類型:包含int,String,Date等?;緮?shù)據(jù)類型作為傳參,只能傳入一個(gè)。通過#參數(shù)名 即可獲取傳入的值復(fù)雜數(shù)據(jù)類型:包含JAVA實(shí)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論