Spring连接两个以上的数据库

通过Spring的配置,添加多个数据源,制作多个qlMapClient,iBatis或Hibernate的各个DAO,

按其所需使用不同的qlMapClient,即可连接到多个DB。

 

用途吗,同时使用Oracle、SQLServer、DB2、MySql,这样的可能似乎不大。

但是对于要从其他系统读取数据的接口,是有可能的。

 

还有就是,将OLTP和OLAP的表分别放置在不同DB中(2台服务器)

 

    <!-- 定义两个数据源dataSource1和dataSource2 -->   
    <bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">     
        <property name="driverClassName">     
            <value>com.ibm.db2.jcc.DB2Driver</value>     
        </property>     
        <property name="url">     
            <value>jdbc:db2://172.168.1.1:50001/MYDB1</value>     
        </property>     
        <property name="username">     
            <value>user</value>     
        </property>     
        <property name="password">     
            <value>password</value>     
        </property>     
    </bean>   
  
    <bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">     
        <property name="driverClassName">     
            <value>com.ibm.db2.jcc.DB2Driver</value>     
        </property>     
        <property name="url">     
            <value>jdbc:db2://172.168.1.1:50001/MYDB2</value>     
        </property>     
        <property name="username">     
            <value>user</value>     
        </property>     
        <property name="password">     
            <value>password</value>     
        </property>     
    </bean>   
  
    <!-- 定义数据源1和数据源2的sqlMapClient,使用同一个SqlMapConfig.xml -->   
    <bean id="sqlMapClient1" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">   
        <property name="configLocation">   
            <value>SqlMapConfig.xml</value>   
        </property>   
        <property name="dataSource">   
            <ref bean="dataSource1" />   
        </property>   
    </bean>   
  
    <bean id="sqlMapClient2" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">   
        <property name="configLocation">   
            <value>SqlMapConfig.xml</value>   
        </property>   
        <property name="dataSource">   
            <ref bean="dataSource2" />   
        </property>   
    </bean>   
  
    <!-- dao1和dao2分别对应位于不同数据源的结构相同的同名表, 因此使用同一个DAOImpl(自然也就是同一个SqlMap) -->   
    <bean id="dao1" class="x.y.XxxxDAOImpl">   
        <property name="sqlMapClient">   
            <ref bean="sqlMapClient1" />   
        </property>   
    </bean>   
       
    <bean id="dao2" class="x.y.XxxxDAOImpl">   
        <property name="sqlMapClient">   
            <ref bean="sqlMapClient2" />   
        </property>   
    </bean>  

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值