溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

spring+mybatis多數(shù)據(jù)源的配置

發(fā)布時間:2020-08-10 16:09:20 來源:網(wǎng)絡(luò) 閱讀:673 作者:wangxiao870709 欄目:關(guān)系型數(shù)據(jù)庫

解決方案:

多套sqlSessionFactory,針對不同的數(shù)據(jù)源

數(shù)據(jù)源

Xml代碼  spring+mybatis多數(shù)據(jù)源的配置

  1. <something-else-entirely>  

  2.     <proxool>  

  3.         <alias>peccancy</alias>  

  4.         <driver-url>jdbc:oracle:thin:@172.16.60.46:1521:orcl</driver-url>  

  5.         <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>  

  6.         <driver-properties>  

  7.             <property name="user" value="oses"/>  

  8.             <property name="password" value="oses"/>  

  9.         </driver-properties>  

  10.         ...  

  11.     </proxool>  

  12.     <proxool>  

  13.         <alias>yhtepap</alias>  

  14.         <driver-url>jdbc:oracle:thin:@172.16.60.46:1521:orcl</driver-url>  

  15.         <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>  

  16.         <driver-properties>  

  17.             <property name="user" value="pap"/>  

  18.             <property name="password" value="pap"/>  

  19.         </driver-properties>  

  20.         ...  

  21.     </proxool>  

  22. </something-else-entirely>  

 1.方法一

Xml代碼  spring+mybatis多數(shù)據(jù)源的配置

  1. <bean id="dataSource_peccancy" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >    

  2.     <property name="driverClassName">    

  3.         <value>org.logicalcobwebs.proxool.ProxoolDriver</value>    

  4.     </property>    

  5.     <property name="url">    

  6.         <value>proxool.peccancy</value>    

  7.     </property>    

  8. </bean>    

  9. <bean id="dataSource_pap" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >    

  10.     <property name="driverClassName">    

  11.         <value>org.logicalcobwebs.proxool.ProxoolDriver</value>    

  12.     </property>    

  13.     <property name="url">    

  14.         <value>proxool.pap</value>    

  15.     </property>    

  16. </bean>   

  

Xml代碼  spring+mybatis多數(shù)據(jù)源的配置

  1. <bean id="sqlSessionFactory_peccancy" class="org.mybatis.spring.SqlSessionFactoryBean">  

  2.     <property name="dataSource" ref="dataSource_peccancy" />  

  3.     <property name="mapperLocations">  

  4.         <list>  

  5.             <value>classpath:net/yhte/common/query/mapper/PageData_Mapper.xml</value>  

  6.             <value>classpath*:net/yhte/web/peccancy/**/mapper/*Mapper.xml</value>  

  7.         </list>  

  8.     </property>  

  9. </bean>  

  10. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  

  11.     <property name="basePackage" value="net.yhte.web.peccancy.**.dao" />  

  12.     <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_peccancy"></property>  

  13. </bean>  

  14. <bean id="sqlSessionFactory_pap" class="org.mybatis.spring.SqlSessionFactoryBean">  

  15.     <property name="dataSource" ref="dataSource_pap" />  

  16.     <property name="mapperLocations">  

  17.         <list>  

  18.             <value>classpath*:net/yhte/web/pap/**/mapper/*Mapper.xml</value>  

  19.             <value>classpath:net/yhte/common/query/mapper/PageData_Mapper.xml</value>  

  20.         </list>  

  21.     </property>  

  22. </bean>  

  23. <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  

  24.     <property name="basePackage" value="net.yhte.web.pap.**.dao" />  

  25.     <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_pap"></property>  

  26. </bean>  

 本方案需要根據(jù)數(shù)據(jù)源的不同對*Mapper.xml進行分包處理,便于配置,同一個包下的*Mapper.xml如果對應(yīng)的數(shù)據(jù)源不同,則不方便使用通配符進行統(tǒng)一掃描配置,且sqlSessionFactory掃包的basePackage 也需要分包。

2.使用自定義注解來取代spring的repository設(shè)置到annotationClass中。這樣每個mapper文件中注入相應(yīng)的注解@PapRepository,@PeccancyRepository

<property name="annotationClass" value="org.springframework.stereotype.Repository"></property>

 改成<property name="annotationClass" value="net.xxx.PapRepository"></property>

  配置文件如下:

Xml代碼  spring+mybatis多數(shù)據(jù)源的配置

  1. <bean id="sqlSessionFactory_peccancy" class="org.mybatis.spring.SqlSessionFactoryBean">  

  2.         <property name="dataSource" ref="dataSource_peccancy" />  

  3.         <property name="mapperLocations">  

  4.             <list>  

  5.                 <value>classpath:net/yhte/common/query/mapper/PageData_Mapper.xml</value>  

  6.                 <value>classpath*:net/yhte/web/**/mapper/*Mapper.xml</value>  

  7.             </list>  

  8.         </property>  

  9.     </bean>  

  10.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  

  11.         <property name="annotationClass" value="net.yhte.common.service.PeccancyRepository"></property>  

  12.         <property name="basePackage" value="net.yhte.web.**.dao" />  

  13.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_peccancy"></property>  

  14.     </bean>  

  15.     <bean id="sqlSessionFactory_pap" class="org.mybatis.spring.SqlSessionFactoryBean">  

  16.         <property name="dataSource" ref="dataSource_pap" />  

  17.         <property name="mapperLocations">  

  18.             <list>  

  19.                 <value>classpath:net/yhte/common/query/mapper/PageData_Mapper.xml</value>  

  20.                 <value>classpath*:net/yhte/web/**/mapper/*Mapper.xml</value>  

  21.             </list>  

  22.         </property>  

  23.     </bean>  

  24.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  

  25.         <property name="annotationClass" value="net.yhte.common.service.PapRepository"></property>  

  26.         <property name="basePackage" value="net.yhte.web.**.dao" />  

  27.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory_pap"></property>  

  28.     </bean>  

 如上所配置使用pap的mapper文件就加上注解@PapRepository

Java代碼  spring+mybatis多數(shù)據(jù)源的配置

  1. public @interface PeccancyRepository {  

  2.   

  3. }  

  4.   

  5. public @interface PapRepository {  

  6.   

  7. }  

 

 

Java代碼  spring+mybatis多數(shù)據(jù)源的配置

  1. // 使用dataSource_pap 數(shù)據(jù)源    

  2. @PapRepository  

  3. public interface UserMapper {  

  4.     List<User> find(UserQueryBean userQueryBean);  

  5. }  

  6. // 使用dataSource_peccancy 數(shù)據(jù)源    

  7. @PeccancyRepository  

  8. public interface ParameterMapper{  

  9.   

  10.     List<Parameter> find(ParameterQueryBean queryBean);  

  11. }  

 

spring+mybatis多數(shù)據(jù)源的配置

獲取【下載地址】   

最主流的Java后臺框架 springmvc spring mybatis SSM 項目源碼


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI