5mybatis框架技術(shù)04.與spring整合開發(fā)_第1頁
5mybatis框架技術(shù)04.與spring整合開發(fā)_第2頁
5mybatis框架技術(shù)04.與spring整合開發(fā)_第3頁
5mybatis框架技術(shù)04.與spring整合開發(fā)_第4頁
5mybatis框架技術(shù)04.與spring整合開發(fā)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、MyBatis框架 -MyBatis與Spring整合開發(fā)Beta版章節(jié)目標理解Spring整合Mybaits思路掌握Spring整合mybatis環(huán)境搭建掌握原始dao開發(fā)方法整合掌握mapper代理開發(fā)方法整合掌握Mapper批量掃描配置掌握Spring整合Mybatis注解配置Spring整合mybatis思路需要spring通過單例方式管理SqlSessionFactoryspring和mybatis整合生成代理對象,使用SqlSessionFactory創(chuàng)建SqlSession。(spring和mybatis整合自動完成)持久層的mapper都需要由spring進行管理。Spring

2、整合mybatis環(huán)境準備項目依賴JAR包準備早期ibatis和spring整合是由spring官方提供,現(xiàn)在mybatis和spring整合由mybatis提供。mybatis-spring-1.2.4.jarSpring框架spring-framework-4.2.4.RELEASE-dist.zipDBCP數(shù)據(jù)庫連接池commons-dbcp2-2.1.1-bin.zipcommons-pool2-2.4.2-bin.zip上述框架可在 上進行下載配置數(shù)據(jù)源和SqlSessionFactory在spring框架配置文件進行配置參考代碼:MyBatis04工程下,config/applic

3、ationContext.xml原始dao開發(fā)方法整合整合流程:1、創(chuàng)建映射文件2、創(chuàng)建DAO接口原始dao開發(fā)方法整合整合流程:3、創(chuàng)建接口實現(xiàn)類,并繼承SqlSessionDaoSupport4、在spring中配置dao原始dao開發(fā)方法整合整合流程:5、在MyBatis配置文件中添加mapper映射6、測試參考代碼:MyBatis04工程下,testTestOrdersDao.java原始dao開發(fā)方法整合SqlSessionDaoSupport注入在繼承SqlSessionDaoSupport類,還可以注入sqlSessionTemplate,sqlSessionFactory注入,

4、最終還是被包裝為sqlSessionTemplate,在繼承SqlSessionDaoSupport類,注入sqlSessionFactory或sqlSessionTemplate,原理上時一致的。注意:在繼承SqlSessionDaoSupport類,無論你是通過sqlSessionFactory注入還是通過sqlSessionTemplate注入,spring均會對session自動管理,因此您不能通過getSession()獲取的session進行提交、回滾、關(guān)閉操作。如果沒繼承SqlSessionDaoSupport類,需要對session自行管理。mapper代理開發(fā)方法整合整合流程

5、:1、創(chuàng)建映射文件2、創(chuàng)建Mapper接口mapper代理開發(fā)方法整合整合流程:3、在spring配置文件中配置mapper,通過MapperFactoryBean創(chuàng)建代理對象,其作用是根據(jù)Mapper接口獲取我們想要的Mapper對象,它封裝了原有的session.getMapper()功能的實現(xiàn)。4、測試參考代碼:MyBatis04工程下,testTestOrdersMapper.javamapper代理開發(fā)方法整合Mapper批量掃描:整合中的第3步, mapper需要一個一個的配置在配置文件中,如果有很多個mapper的話配置文件就會非常大,管理繁瑣,Mybatis團隊利用spring

6、提供的自動掃描功能封裝了一個自動掃描mapper的工具類,這樣我們就可以使用這個功能簡化配置.MapperScannerConfigurer 工具類,可以從mapper包中掃描出mapper接口,自動創(chuàng)建代理對象并且在spring容器中注冊遵循規(guī)范:將mapper.java和mapper.xml映射文件名稱保持一致,且在一個目錄中自動掃描出來的mapper的bean的id為mapper類名(首字母小寫)如果掃描多個包,每個包中間使用半角逗號分隔mapper代理開發(fā)方法整合Mapper批量掃描配置:注 意上面sqlSessionFactory屬性也可以不用指定,默認會以Autowired方式注入

7、。但是,如果你使 用了一個 以上的 DataSource ,那 么自動 裝配可 能會失效 。這種 情況下 ,你可 以使用 sqlSessionFactoryBeanName屬性來設(shè)置正確的 bean 名 稱來使用。這就是它如何來配置的,注意 bean 的名稱是必須的,而不是 bean 的引用,因 此,value 屬性在這里替代通常的 refSpring注解編程回顧Spring基于注解實現(xiàn)Bean依賴注入支持如下三種注解:Spring自帶依賴注入注解: Spring自帶的一套依賴注入注解;JSR-250注解:Java平臺的公共注解,是Java EE 5規(guī)范之一,在JDK6中默認包含這些注解,從S

8、pring2.5開始支持JSR-330注解:Java 依賴注入標準,Java EE 6規(guī)范之一,可能在加入到未來JDK版本,從Spring3開始支持;JPA注解:用于注入持久化上下文和尸體管理器。以上這三種類型的注解在Spring3中都支持,類似于注解事務(wù)支持,想要使用這些注解需要在Spring容器中開啟注解驅(qū)動支持,即使用如下配置方式開啟:注解編程回顧Spring自帶依賴注入注解:Service用于標注業(yè)務(wù)層組件 Repository用于標注數(shù)據(jù)訪問組件,即DAO組件 Controller用于標注控制層組件,如Struts中的Action ponent泛指組件,當組件不要好歸類時,可以使用這

9、個注解進行標注Spring注解編程回顧1、用注解來向Spring容器注冊Bean,需要在applicationContext.xml中注冊:。2、 ServiceService對應(yīng)的是業(yè)務(wù)層BeanService(userService)注解是告訴Spring,當Spring要創(chuàng)建UserServiceImpl的的實例時,bean的名字必須叫做userService3、 RepositoryRepository對應(yīng)數(shù)據(jù)訪問層BeanRepository(value=userMapper)注解是告訴Spring,讓Spring創(chuàng)建一個名字叫“userMapper”的UserDaoImpl實例。S

10、pring注解編程回顧4、Autowired可以對成員變量、方法和構(gòu)造函數(shù)進行標注,來完成自動裝配的工作。默認是按照類型裝配注入的,默認情況下它要求依賴對象必須存在,如果允許null值,可以設(shè)置它required屬性為false。Autowired()private UserMapper userMapper;2QualifierAutowired是根據(jù)類型進行自動裝配的。如果當Spring上下文中存在不止一個UserDao類型的bean時,就 會拋出BeanCreationException異常;如果Spring上下文中不存在UserDao類型的bean,也會拋出 BeanCreationException異常。我們可以使用Qualifier配合Autowired來解決這些問題。Spring整合Mybatis注解配置1、配置組件自動掃描它可以在classpath下尋找標注了Service、Repository、Controller、 ponent注解的類 并把這些類納入Spring容器中管理,它的作用和在XML中使用bean節(jié)點配置組件是一樣的,其

溫馨提示

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

評論

0/150

提交評論