摘要:第一是手動在的配置文件中使用部分來指定類路徑。第二是使用工廠的屬性。注解和樣式的配置都是支持的。在事務處理期間一個多帶帶的對象將會被創建和使用。創建的代理控制開放和關閉翻譯任意的異常到的異常中。每個映射器將會在指定的包路徑中遞歸地被搜索到。
mybatis-spring
若要整合spring和mybatis就需要一個插件即mybatis-spring-x.x.x.jar。具體的安裝如下所示:
org.mybatis mybatis-spring x.x.x
要和Spring一起使用 MyBatis,還需要在 Spring 應用上下文中定義至少兩樣東西:一個 SqlSessionFactory 和至少一個數據映射器類。
SqlSessionFactory在文件中配置sqlsessionfactory
屬性dataSource: SqlSessionFactory 有一個多帶帶的必須屬性,就是 JDBC 的 DataSource。這可以是任意 的 DataSource,其配置應該和其它 Spring 數據庫連接是一樣的。
configLocation:它是用來指定MyBatis的XML 配置文件路徑的。 如果基本的 MyBatis 配置需要改變, 那么這就是一個需要它的地方。 通常這會是
mapperLocations:如果 MyBatis 映射器 XML 文件在和映射器類相同的路徑下不存在,那么另外一個需要配置文件的原因就是它了。使用這個配置,有兩種選擇。第一是手動在 MyBatis的XML配 置文件中使用
mapperLocations 屬性使用一個資源位置的 list。 這個屬性可以用來指定 MyBatis 的 XML 映射器文件的位置。 它的值可以包含 Ant 樣式來加載一個目錄中所有文件, 或者從基路徑下 遞歸搜索所有路徑。
事務一個使用 MyBatis-Spring的主要原因是它允許MyBatis參與到 Spring 的事務管理中。而不是給 MyBatis創建一個新的特定的事務管理器,MyBatis-Spring 利用了存在于 Spring 中的 DataSourceTransactionManager。
一旦 Spring 的 PlatformTransactionManager 配置好了,就可以在 Spring 中以你通常的做法來配置事務。@Transactional 注解和 AOP樣式的配置都是支持的。在事務處理期間,一個多帶帶的 SqlSession 對象將會被創建 和使用。當事務完成時,這個 session 會以合適的方式提交或回滾。
映射器類配置為了代替手工使用 SqlSessionDaoSupport 或 SqlSessionTemplate 編寫數據訪問對象 (DAO)的代碼,MyBatis-Spring 提供了一個動態代理的實現:MapperFactoryBean。這個類 可以讓你直接注入數據映射器接口到你的 service 層 bean 中。當使用映射器時,你僅僅如調 用你的 DAO 一樣調用它們就可以了,但是你不需要編寫任何 DAO 實現的代碼,因為 MyBatis-Spring 將會為你創建代理。使用注入的映射器代碼,在 MyBatis,Spring 或 MyBatis-Spring 上面不會有直接的依賴。
MapperFactoryBean 創建的代理控制開放和關閉 session,翻譯任意的異常到 Spring 的DataAccessException 異常中。此外,如果需要或參與到一個已經存在活動事務中,代理將會開啟一個新的Spring事務。
數據映射器接口可以按照如下做法加入到 Spring 中:
MapperFactoryBean 創建的代理類實現了 UserMapper 接口,并且注入到應用程序中。 因為代理創建在運行時環境中,那么指定的映射器必須是一個接口,而不是一個具體的實現類。
如果UserMapper 有一個對應的MyBatis的XML映射器文件, 如果 XML 文件在類路徑的位置和映射器類相同時,它會被 MapperFactoryBean自動解析。沒有必要在 MyBatis 配置文 件 中 去 指 定 映 射 器 , 除 非 映 射 器 的 XML 文 件 在 不 同 的 類 路 徑 下 。
沒有必要在 Spring 的 XML 配置文件中注冊所有的映射器。相反,你可以使用一個MapperScannerConfigurer , 它 將 會 查 找 類 路 徑 下 的 映 射 器 并 自 動 將 它 們 創 建 成MapperFactoryBean。
要創建 MapperScannerConfigurer,可以在 Spring 的配置中添加如下代碼:
basePackage 屬性是讓你為映射器接口文件設置基本的包路徑。 你可以使用分號或逗號 作為分隔符設置多于一個的包路徑。每個映射器將會在指定的包路徑中遞歸地被搜索到。
注 意 , 沒 有 必 要 去 指 定 SqlSessionFactory 或 SqlSessionTemplate , 因 為 MapperScannerConfigurer 將會創建 MapperFactoryBean,之后自動裝配。但是,如果你使 用了一個 以上的 DataSource ,那 么自動 裝配可 能會失效 。這種 情況下 ,你可 以使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName 屬性來設置正確的 bean 名 稱來使用。這就是它如何來配置的,注意 bean 的名稱是必須的,而不是 bean 的引用,因 此,value 屬性在這里替代通常的 ref:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70255.html
摘要:的整合大致結構中放置的配置文件,由于這個例子很簡單,所以配置得比較簡單。在與的整合中,在這里不用配置,因為在整合包中有的掃描類。中配置的是和整合的配置。其中包括數據源數據池的配置的配置掃描器的配置還有事務的配置。所以將改了就解決問題了 1. springMVC+spring+mybatis的整合大致結構: showImg(https://segmentfault.com/img/bVb...
摘要:通過整合及可以實現數據庫查詢后將數據持久化。但是可能出現幻像讀這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。 所需技術:spring、mybatis、druid、flyway、logback、nodejs、html、css3 ;目標:創建一個業務框架,后端采用spring+mybatis,中間層采用node,前端html5,css3等; showImg(https:/...
摘要:上一篇學習了服務提供者,但是并不是單單就學習了服務提供者。中間還穿插使用了數據源和整合。但是上篇使用時還是沿用了老的方式,需要配置對應的文件。 1、上一篇學習了服務提供者provider,但是并不是單單就學習了服務提供者。中間還穿插使用了Hikari數據源和spring cloud整合mybatis。但是上篇使用mybatis時還是沿用了老的方式,需要配置mapper對應的xml文件。...
摘要:更簡答的說就是要么全部執行成功,要么撤銷不執行。因此,數據庫操作的事務習慣上就稱為事務。實現原理單機事務事務是用對象控制的。接口提供了兩種事務模式自動提交和手工提交。事務多機事務,通過實現,需要驅動支持。局限于應用使用。 Spring Boot - 數據庫配置 回顧 Spring Boot - 初識 Hello World Spring Boot - Servlet、過濾器、監聽器、...
摘要:教程簡介本項目內容為教程樣例。目的是通過學習本系列教程,讀者可以從到掌握的知識,并且可以運用到項目中。 教程簡介 本項目內容為Spring Boot教程樣例。目的是通過學習本系列教程,讀者可以從0到1掌握spring boot的知識,并且可以運用到項目中。如您覺得該項目對您有用,歡迎點擊收藏和點贊按鈕,給予支持!!教程連載中,歡迎持續關注! 環境 IDE: Eclipse NeonJa...
閱讀 659·2021-11-11 16:55
閱讀 2164·2021-11-11 16:55
閱讀 1956·2021-11-11 16:55
閱讀 2345·2021-10-25 09:46
閱讀 1607·2021-09-22 15:20
閱讀 2289·2021-09-10 10:51
閱讀 1710·2021-08-25 09:38
閱讀 2623·2019-08-30 12:48