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

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

发布于 2020-8-2|

复制链接

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

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

```java

classpath:com/resource/config.properties

org.hibernate.dialect.MySQLDialect

org.springframework.orm.hibernate4.SpringSessionContext

false

true

create

com.po

```

DynamicDataSource.class

```java

package com.core;

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

public class DynamicDataSource extends AbstractRoutingDataSource{

@Override

protected Object determineCurrentLookupKey() {

return DatabaseContextHolder.getCustomerType();

}

}

```

DatabaseContextHolder.class设置数据源的类

```java

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

```java

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数据源

```java

jdbc_driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

dataSourceOne=jdbc:sqlserver://115.29.***.**;DatabaseName=DB_GuiHua

```

jdbc_username=**jdbc_password=**

```java

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

```

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

```java

DataSourceContextHolder.setDbType(DataSourceType.SOURCE_FUND);//更换数据源

```

```java

/**

* @ClassName: DataSourceContextHolder

* @Description: 数据库切换工具类

* @author: wzx

* @date: 2016-07-27 上午10:26:01

*/

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();

}

}

```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值