SSM框架连接两个数据库

工具类:

/**
 * 
 */
package com.myhope.util;

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

/**
 * Description:<br/>
 * Copyright (c) , 2017, Jansonxu <br/>
 * This program is protected by copyright laws. <br/>
 * Program Name:DynamicDataSource<br/>
 * Date:2019年2月13日
 * 
 * @author 
 * @version : 1.0
 */
public class DbcontextHolder extends AbstractRoutingDataSource{

public static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();
    
    /**
     * 设置当前数据源
     * @param dbType
     */
    public static void setDbType(String dbType){
        contextHolder.set(dbType);
    }
    /**
     * 获得当前数据源
     * @return
     */
    public static String getDbType(){
        String dbType = (String)contextHolder.get();
        return dbType;
    }
    /**
     *清除上下文
     *
     */
    public void clearContext(){
        context
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM框架中同时连接两个数据库,可以按照以下步骤进行: 1. 在applicationContext.xml配置文件中,配置两个数据源。例如: ``` <bean id="dataSource1" class="org.apache.commons.dbcp2.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/db1"/> <property name="username" value="root"/> <property name="password" value="root"/> </bean> <bean id="dataSource2" class="org.apache.commons.dbcp2.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/db2"/> <property name="username" value="root"/> <property name="password" value="root"/> </bean> ``` 2. 在MyBatis的Mapper映射文件中,使用<sqlSessionTemplate>标签配置两个SqlSessionTemplate。例如: ``` <bean id="sqlSessionTemplate1" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory1"/> </bean> <bean id="sqlSessionTemplate2" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory2"/> </bean> ``` 其中,sqlSessionFactory1和sqlSessionFactory2分别是两个数据源对应的SqlSessionFactory。 3. 在需要使用的Mapper接口中,使用@Qualifier注解指定使用哪个SqlSessionTemplate。例如: ``` @Autowired @Qualifier("sqlSessionTemplate1") private SqlSessionTemplate sqlSessionTemplate1; @Autowired @Qualifier("sqlSessionTemplate2") private SqlSessionTemplate sqlSessionTemplate2; ``` 这样,在使用Mapper接口时,就可以通过sqlSessionTemplate1和sqlSessionTemplate2分别操作两个数据库了。 需要注意的是,使用多个数据源会增加系统的复杂度和维护成本,因此需要根据实际情况进行评估和选择。同时,使用多个数据源时需要注意事务的控制,确保事务的一致性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值