##########################MySQL##################################### hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect connection.driver_class=com.mysql.jdbc.Driver connection.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 connection.username=yahu connection.password=123456 ##########################Oracle##################################### connection1.driver_class=oracle.jdbc.driver.OracleDriver connection1.url=jdbc\:oracle\:thin\:@localhost\:1521/MEDB connection1.username=yahu connection1.password=123456 ##########################Sql Server2008##################################### connection2.driver_class=net.sourceforge.jtds.jdbc.Driver connection2.url=jdbc:jtds:sqlserver://localhost:1433;DatabaseName=test connection2.username=yahu connection2.password=123456
<!-- 数据库连接池配置 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${connection.driver_class}" />
<property name="url" value="${connection.url}" />
<property name="username" value="${connection.username}" />
<property name="password" value="${connection.password}" />
<property name="initialSize" value="5" />
<property name="minIdle" value="1" />
<property name="maxActive" value="200" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="30000" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
</bean>
<!-- Oracle -->
<bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${connection1.driver_class}" />
<property name="url" value="${connection1.url}" />
<property name="username" value="${connection1.username}" />
<property name="password" value="${connection1.password}" />
</bean>
<!-- Sql server 2008 -->
<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${connection2.driver_class}" />
<property name="url" value="${connection2.url}" />
<property name="username" value="${connection2.username}" />
<property name="password" value="${connection2.password}" />
</bean>
<!-- 动态数据源 -->
<bean id="dynamicDataSource" class="com.yahu.core.dao.DynamicDataSource">
<!-- 通过key-value的形式来关联数据源 -->
<property name="targetDataSources">
<map>
<entry value-ref="dataSource" key="datasource" />
<entry value-ref="dataSource1" key="datasource1" />
<entry value-ref="dataSource2" key="datasource2" />
</map>
</property>
<property name="defaultTargetDataSource" ref="dataSource" />
</bean>
package com.yahu.core.dao;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
/*******************************************************************
* @describe : 建立动态数据源类 必须继承AbstractRoutingDataSource
********************************************************************/
public class DynamicDataSource extends AbstractRoutingDataSource {
//coverity 修改
//private Log log = LogFactory.getLog(getClass());
protected Object determineCurrentLookupKey() {
String value = CustomerContextHolder.getCustomerType();
//log.info(value);
return value;
}
}
package com.yahu.core.dao;
/*******************************************************************
* @describe : 获得和设置上下文环境
********************************************************************/
public class CustomerContextHolder {
/**
* mysql
*/
public static final String DATASOURCE = "datasource";
/**
* oracle
*/
public static final String DATASOURCE_1 = "datasource1";
/**
* sql server
*/
public static final String DATASOURCE_2 = "datasource2";
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
public static void setCustomerType(String customerType) {
contextHolder.set(customerType);
}
public static String getCustomerType() {
return contextHolder.get();
}
public static void clearCustomerType() {
contextHolder.remove();
}
}
CustomerContextHolder.setCustomerType(CustomerContextHolder.DATASOURCE);
CustomerContextHolder.clearCustomerType();
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有