关于ssm框架中的动态数据源

mybatis中配置动态数据源
//在这里只贴上数据源的配置 其他的配置不再贴了
//配置多个数据源

<bean id="dataSource_ds" class="com.alibaba.druid.pool.DruidDataSource">
		<property name="driverClassName" value="${driverClassName}" />
		<property name="url" value="${dsurl}" />
		<property name="username" value="${name}" />
		<property name="password" value="${pwd}" />
	    <property name="validationQuery" value="${validationSQuery}" />  
        <property name="testWhileIdle" value="${testWhileIdle}" />  
	</bean>
	<bean id="dataSource_vd" class="com.alibaba.druid.pool.DruidDataSource">
		<property name="driverClassName" value="${driverClassName}" />
		<property name="url" value="${vdurl}" />
		<property name="username" value="${name}" />
		<property name="password" value="${pwd}" />
		<property name="validationQuery" value="${validationSQuery}" />  
        <property name="testWhileIdle" value="${testWhileIdle}" />  
	</bean>
	<bean id="dataSource_pr" class="com.alibaba.druid.pool.DruidDataSource">
		<property name="driverClassName" value="${driverClassName}" />
		<property name="url" value="${prurl}" />
		<property name="username" value="${name}" />
		<property name="password" value="${pwd}" />
		<property name="validationQuery" value="${validationSQuery}" />  
        <property name="testWhileIdle" value="${testWhileIdle}" />  
	</bean>

<!-- 动态配置数据源 -->  
   <bean id ="dataSource" class= "com.yutu.util.DynamicDataSource" >  
          <property name ="targetDataSources">  
                <map key-type ="java.lang.String">  
                    <entry value-ref ="dataSource_ds" key= "dataSource_ds" </entry>  
                    <entry value-ref ="dataSource_vd" key= "dataSource_vd"</entry>  
                    <entry value-ref ="dataSource_pr"  key= "dataSource_pr"</entry>  
                </map >  
          </property >  
          <!-- 默认使用的数据源 -->
          <property name ="defaultTargetDataSource" ref= "dataSource_vd"></property >        
   </bean >  

//使用动态数据源的工具类

public class DataSourceContextHolder {  
    private static final ThreadLocal<String> contextHolder = new   ThreadLocal<String>();  
 
    public static void setDbType(String dbType) {  
           contextHolder.set(dbType);  
    }  
 
    public static String getDbType() {  
           return ((String) contextHolder.get());  
    }  
 
    public static void clearDbType() {  
           contextHolder.remove();  
    }  
   }

//在使用过程中 在controller或者Service中使用
// DataSourceContextHolder.setDbType(“dataSource_ds”);这个方法
//就完成了动态数据源的设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值