成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

spring和mybatis的整合

vspiders / 2459人閱讀

摘要:第一是手動在的配置文件中使用部分來指定類路徑。第二是使用工廠的屬性。注解和樣式的配置都是支持的。在事務(wù)處理期間一個(gè)多帶帶的對象將會被創(chuàng)建和使用。創(chuàng)建的代理控制開放和關(guān)閉翻譯任意的異常到的異常中。每個(gè)映射器將會在指定的包路徑中遞歸地被搜索到。

mybatis-spring

若要整合spring和mybatis就需要一個(gè)插件即mybatis-spring-x.x.x.jar。具體的安裝如下所示:

 
   org.mybatis
   mybatis-spring
   x.x.x
 

要和Spring一起使用 MyBatis,還需要在 Spring 應(yīng)用上下文中定義至少兩樣?xùn)|西:一個(gè) SqlSessionFactory 和至少一個(gè)數(shù)據(jù)映射器類。

SqlSessionFactory
在文件中配置sqlsessionfactory

   

屬性dataSource: SqlSessionFactory 有一個(gè)多帶帶的必須屬性,就是 JDBC 的 DataSource。這可以是任意 的 DataSource,其配置應(yīng)該和其它 Spring 數(shù)據(jù)庫連接是一樣的。

configLocation:它是用來指定MyBatis的XML 配置文件路徑的。 如果基本的 MyBatis 配置需要改變, 那么這就是一個(gè)需要它的地方。 通常這會是的部分。要注意這個(gè)配置文件不需要是一個(gè)完整的 MyBatis 配置。確切地說,任意環(huán)境,數(shù)據(jù)源 和 MyBatis 的事務(wù)管理器都會被忽略。SqlSessionFactoryBean 會創(chuàng)建它自己的,使用這些 值定制 MyBatis 的 Environment 時(shí)是需要的。

mapperLocations:如果 MyBatis 映射器 XML 文件在和映射器類相同的路徑下不存在,那么另外一個(gè)需要配置文件的原因就是它了。使用這個(gè)配置,有兩種選擇。第一是手動在 MyBatis的XML配 置文件中使用部分來指定類路徑。第二是使用工廠bean的mapperLocations屬性。

mapperLocations 屬性使用一個(gè)資源位置的 list。 這個(gè)屬性可以用來指定 MyBatis 的 XML 映射器文件的位置。 它的值可以包含 Ant 樣式來加載一個(gè)目錄中所有文件, 或者從基路徑下 遞歸搜索所有路徑。

事務(wù)

一個(gè)使用 MyBatis-Spring的主要原因是它允許MyBatis參與到 Spring 的事務(wù)管理中。而不是給 MyBatis創(chuàng)建一個(gè)新的特定的事務(wù)管理器,MyBatis-Spring 利用了存在于 Spring 中的 DataSourceTransactionManager。

一旦 Spring 的 PlatformTransactionManager 配置好了,就可以在 Spring 中以你通常的做法來配置事務(wù)。@Transactional 注解和 AOP樣式的配置都是支持的。在事務(wù)處理期間,一個(gè)多帶帶的 SqlSession 對象將會被創(chuàng)建 和使用。當(dāng)事務(wù)完成時(shí),這個(gè) session 會以合適的方式提交或回滾。

映射器類配置

為了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 編寫數(shù)據(jù)訪問對象 (DAO)的代碼,MyBatis-Spring 提供了一個(gè)動態(tài)代理的實(shí)現(xiàn):MapperFactoryBean。這個(gè)類 可以讓你直接注入數(shù)據(jù)映射器接口到你的 service 層 bean 中。當(dāng)使用映射器時(shí),你僅僅如調(diào) 用你的 DAO 一樣調(diào)用它們就可以了,但是你不需要編寫任何 DAO 實(shí)現(xiàn)的代碼,因?yàn)?MyBatis-Spring 將會為你創(chuàng)建代理。使用注入的映射器代碼,在 MyBatis,Spring 或 MyBatis-Spring 上面不會有直接的依賴。

MapperFactoryBean 創(chuàng)建的代理控制開放和關(guān)閉 session,翻譯任意的異常到 Spring 的DataAccessException 異常中。此外,如果需要或參與到一個(gè)已經(jīng)存在活動事務(wù)中,代理將會開啟一個(gè)新的Spring事務(wù)。

數(shù)據(jù)映射器接口可以按照如下做法加入到 Spring 中:


  
  

MapperFactoryBean 創(chuàng)建的代理類實(shí)現(xiàn)了 UserMapper 接口,并且注入到應(yīng)用程序中。 因?yàn)榇韯?chuàng)建在運(yùn)行時(shí)環(huán)境中,那么指定的映射器必須是一個(gè)接口,而不是一個(gè)具體的實(shí)現(xiàn)類。

如果UserMapper 有一個(gè)對應(yīng)的MyBatis的XML映射器文件, 如果 XML 文件在類路徑的位置和映射器類相同時(shí),它會被 MapperFactoryBean自動解析。沒有必要在 MyBatis 配置文 件 中 去 指 定 映 射 器 , 除 非 映 射 器 的 XML 文 件 在 不 同 的 類 路 徑 下 。

沒有必要在 Spring 的 XML 配置文件中注冊所有的映射器。相反,你可以使用一個(gè)MapperScannerConfigurer , 它 將 會 查 找 類 路 徑 下 的 映 射 器 并 自 動 將 它 們 創(chuàng) 建 成MapperFactoryBean。

要創(chuàng)建 MapperScannerConfigurer,可以在 Spring 的配置中添加如下代碼:


  

basePackage 屬性是讓你為映射器接口文件設(shè)置基本的包路徑。 你可以使用分號或逗號 作為分隔符設(shè)置多于一個(gè)的包路徑。每個(gè)映射器將會在指定的包路徑中遞歸地被搜索到。

注 意 , 沒 有 必 要 去 指 定 SqlSessionFactory 或 SqlSessionTemplate , 因 為 MapperScannerConfigurer 將會創(chuàng)建 MapperFactoryBean,之后自動裝配。但是,如果你使 用了一個(gè) 以上的 DataSource ,那 么自動 裝配可 能會失效 。這種 情況下 ,你可 以使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName 屬性來設(shè)置正確的 bean 名 稱來使用。這就是它如何來配置的,注意 bean 的名稱是必須的,而不是 bean 的引用,因 此,value 屬性在這里替代通常的 ref:

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/70255.html

相關(guān)文章

  • mybatisspringMVC整合及其中問題

    摘要:的整合大致結(jié)構(gòu)中放置的配置文件,由于這個(gè)例子很簡單,所以配置得比較簡單。在與的整合中,在這里不用配置,因?yàn)樵谡习杏械膾呙桀?。中配置的是和整合的配置。其中包括?shù)據(jù)源數(shù)據(jù)池的配置的配置掃描器的配置還有事務(wù)的配置。所以將改了就解決問題了 1. springMVC+spring+mybatis的整合大致結(jié)構(gòu): showImg(https://segmentfault.com/img/bVb...

    EscapedDog 評論0 收藏0
  • 分布式軟件架構(gòu)整合(一)

    摘要:通過整合及可以實(shí)現(xiàn)數(shù)據(jù)庫查詢后將數(shù)據(jù)持久化。但是可能出現(xiàn)幻像讀這是花費(fèi)最高代價(jià)但是最可靠的事務(wù)隔離級別。事務(wù)被處理為順序執(zhí)行。 所需技術(shù):spring、mybatis、druid、flyway、logback、nodejs、html、css3 ;目標(biāo):創(chuàng)建一個(gè)業(yè)務(wù)框架,后端采用spring+mybatis,中間層采用node,前端html5,css3等; showImg(https:/...

    mochixuan 評論0 收藏0
  • 5、springcloud整合mybatis注解方式

    摘要:上一篇學(xué)習(xí)了服務(wù)提供者,但是并不是單單就學(xué)習(xí)了服務(wù)提供者。中間還穿插使用了數(shù)據(jù)源和整合。但是上篇使用時(shí)還是沿用了老的方式,需要配置對應(yīng)的文件。 1、上一篇學(xué)習(xí)了服務(wù)提供者provider,但是并不是單單就學(xué)習(xí)了服務(wù)提供者。中間還穿插使用了Hikari數(shù)據(jù)源和spring cloud整合mybatis。但是上篇使用mybatis時(shí)還是沿用了老的方式,需要配置mapper對應(yīng)的xml文件。...

    ingood 評論0 收藏0
  • Spring Boot - 整合JdbcTemplate、MyBatis

    摘要:更簡答的說就是要么全部執(zhí)行成功,要么撤銷不執(zhí)行。因此,數(shù)據(jù)庫操作的事務(wù)習(xí)慣上就稱為事務(wù)。實(shí)現(xiàn)原理單機(jī)事務(wù)事務(wù)是用對象控制的。接口提供了兩種事務(wù)模式自動提交和手工提交。事務(wù)多機(jī)事務(wù),通過實(shí)現(xiàn),需要驅(qū)動支持。局限于應(yīng)用使用。 Spring Boot - 數(shù)據(jù)庫配置 回顧 Spring Boot - 初識 Hello World Spring Boot - Servlet、過濾器、監(jiān)聽器、...

    Keagan 評論0 收藏0
  • Spring Boot 教程(三): Spring Boot 整合Mybatis

    摘要:教程簡介本項(xiàng)目內(nèi)容為教程樣例。目的是通過學(xué)習(xí)本系列教程,讀者可以從到掌握的知識,并且可以運(yùn)用到項(xiàng)目中。 教程簡介 本項(xiàng)目內(nèi)容為Spring Boot教程樣例。目的是通過學(xué)習(xí)本系列教程,讀者可以從0到1掌握spring boot的知識,并且可以運(yùn)用到項(xiàng)目中。如您覺得該項(xiàng)目對您有用,歡迎點(diǎn)擊收藏和點(diǎn)贊按鈕,給予支持!!教程連載中,歡迎持續(xù)關(guān)注! 環(huán)境 IDE: Eclipse NeonJa...

    Xufc 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<