spring+mybatis多数据源的配置
admin
2023-05-03 07:24:39
0

解决方案:

多套sqlSessionFactory,针对不同的数据源

数据源

Xml代码  spring+mybatis多数据源的配置

  1. <something-else-entirely>  

  2.     <proxool>  

  3.         <alias>peccancyalias>  

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

  5.         <driver-class>oracle.jdbc.driver.OracleDriverdriver-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>yhtepapalias>  

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

  15.         <driver-class>oracle.jdbc.driver.OracleDriverdriver-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多数据源的配置

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

  2.     <property name="driverClassName">    

  3.         <value>org.logicalcobwebs.proxool.ProxoolDrivervalue>    

  4.     property>    

  5.     <property name="url">    

  6.         <value>proxool.peccancyvalue>    

  7.     property>    

  8. bean>    

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

  10.     <property name="driverClassName">    

  11.         <value>org.logicalcobwebs.proxool.ProxoolDrivervalue>    

  12.     property>    

  13.     <property name="url">    

  14.         <value>proxool.papvalue>    

  15.     property>    

  16. bean>   

  

Xml代码  spring+mybatis多数据源的配置

  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.xmlvalue>  

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

  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.xmlvalue>  

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

  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>  

 本方案需要根据数据源的不同对*Mapper.xml进行分包处理,便于配置,同一个包下的*Mapper.xml如果对应的数据源不同,则不方便使用通配符进行统一扫描配置,且sqlSessionFactory扫包的basePackage 也需要分包。

2.使用自定义注解来取代spring的repository设置到annotationClass中。这样每个mapper文件中注入相应的注解@PapRepository,@PeccancyRepository

 改成

  配置文件如下:

Xml代码  spring+mybatis多数据源的配置

  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.xmlvalue>  

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

  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.xmlvalue>  

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

  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多数据源的配置

  1. public @interface PeccancyRepository {  

  2.   

  3. }  

  4.   

  5. public @interface PapRepository {  

  6.   

  7. }  

 

 

Java代码  spring+mybatis多数据源的配置

  1. // 使用dataSource_pap 数据源    

  2. @PapRepository  

  3. public interface UserMapper {  

  4.     List find(UserQueryBean userQueryBean);  

  5. }  

  6. // 使用dataSource_peccancy 数据源    

  7. @PeccancyRepository  

  8. public interface ParameterMapper{  

  9.   

  10.     List find(ParameterQueryBean queryBean);  

  11. }  

 

spring+mybatis多数据源的配置

获取【下载地址】   

最主流的Java后台框架 springmvc spring mybatis SSM 项目源码


相关内容

热门资讯

卖“毒蛋”的人,抓到了 作者 | 何国胜 编辑 | 向现“(人)抓到了,目前案件正在侦办中。”7月28日晚间,苏州禁毒部门有...
尺素金声丨实施零关税国家达63... 海关总署发布的数据显示,今年5月1日起,我国对53个非洲建交国全面实施零关税举措,目前,我国实施零关...
职业索赔盯上基层诊所,倒逼用药... 文 | 布丁基层诊所正在被职业索赔盯上。据新京报,去年夏天,一男子走进河南南阳一家诊所,要求购买三瓶...
“西瓜我全买了”就可以肆意妄为... 拿西瓜砸了人,把瓜都买了,就能一走了之吗?事实证明,这套逻辑在法治社会行不通。7月28日晚,据海峡都...
科学家在日本广岛发现新物质,系... 在美国对日本广岛进行原子弹轰炸近81年后,科学家们在广岛的沙滩上发现了一种奇异且从未被发现过的新物质...
AI失控,反噬开始 作者 | 贺一 编辑 | 阿树近期,中国开源模型在美国频繁引发热议。7月28日,月之暗面发布Kimi...
“总统千金天价离婚”,分到43... 2026年7月24日下午,首尔高等法院,一场持续近十年的司法拉锯战终于接近尾声。法庭裁定SK集团会长...
巴基斯坦,又拿下一个历史性协议 全世界都没想到,接连的中东大战,巴基斯坦正成为最大赢家。去年以色列追杀哈马斯,空袭卡塔尔首都,阿拉伯...
汇正财经贺峰的一对一指导服务怎...   对于考虑购买证券投资顾问服务的投资者来说,'一对一指导服务怎么样'是一个重要的考量维度。需要首先...
重庆失联00后网格员龚宝冬确认...   重庆失联00后网格员龚宝冬确认遇难  【重庆失联00后网格员龚宝冬确认遇难】2026年7月29日...