栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring MVC配置双数据源实现一个java项目同时连接两个数据库的方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring MVC配置双数据源实现一个java项目同时连接两个数据库的方法

前言

本文主要介绍的是关于Spring MVC配置双数据源实现一个java项目同时连接两个数据库的方法,分享出来供大家参考学习,下面来看看详细的介绍:

实现方法:

数据源在配置文件中的配置

 
 
 
  
 
  
 
  
   
    
    classpath:com/resource/config.properties 
    
   
  
 
  
   
   
   
   
   
   
   
  
 
  
   
   
   
   
   
   
   
  
 
  
   
    
     
     
    
   
   
   
  
 
  
   
   
    
    org.hibernate.dialect.MySQLDialect 
    org.springframework.orm.hibernate4.SpringSessionContext 
    false 
    true 
    create 
    
   
   
    
    com.po 
    
   
  
 
  
   
  
 
  
   
   
  
 
  
   
    
    
    
    
    
   
  
 
  
   
    
    
    
    
   
  
 

DynamicDataSource.class

package com.core; 
 
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; 
 
public class DynamicDataSource extends AbstractRoutingDataSource{ 
 
 @Override 
 protected Object determineCurrentLookupKey() { 
  return DatabaseContextHolder.getCustomerType(); 
 } 
 
} 

DatabaseContextHolder.class设置数据源的类

package com.core; 
 
public class DatabaseContextHolder { 
 
 private static final ThreadLocal contextHolder = new ThreadLocal(); 
 //设置要使用的数据源 
 public static void setCustomerType(String customerType) { 
  contextHolder.set(customerType); 
 } 
 //获取数据源 
 public static String getCustomerType() { 
  return contextHolder.get(); 
 } 
 //清除数据源,使用默认的数据源 
 public static void clearCustomerType() { 
  contextHolder.remove(); 
 } 
} 

DataSourceInterceptor.class

package com.core; 
 
import org.aspectj.lang.JoinPoint; 
import org.springframework.stereotype.Component; 
 
@Component 
public class DataSourceInterceptor { 
 //数据源1 
 public static final String SOURCE_PLAN = "dataSourceOne"; 
 //数据源2 
 public static final String SOURCE_FUND = "dataSourceTwo"; 
}

springMVC数据源

jdbc_driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver 
dataSourceOne=jdbc:sqlserver://115.29.***.**;DatabaseName=DB_GuiHua 

jdbc_username=**jdbc_password=**

dataSourceTwo=jdbc:sqlserver://115.29.***.*;DatabaseName=DB_Fund 

Spring MVC会默认有一个数据源,当需要更换数据源时,要在调用事务之前配置

DataSourceContextHolder.setDbType(DataSourceType.SOURCE_FUND);//更换数据源 
 
public class DataSourceContextHolder { 
 private static final ThreadLocal contextHolder = new ThreadLocal(); 
 
 public static void setDbType(String dbType) { 
  contextHolder.set(dbType); 
 } 
 
 public static String getDbType() { 
  return ((String) contextHolder.get()); 
 } 
 
 public static void clearDbType() { 
  contextHolder.remove(); 
 } 
} 

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对考高分网的支持。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/146085.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号