想使用spring+Hibernate框架,连接多个数据库。网上有一些资料算是比较成熟的解决方案,大概是实现抽象类AbstractRoutingDataSource,将多个数据库的连接写成bean;sessionFactory使用 自己实现的类。具体的配置文件如下:
<beans>
       <bean id="master"
              class="com.mchange.v2.c3p0.ComboPooledDataSource"
              destroy-method="close">
              <property name="driverClass">
                     <value>com.mysql.jdbc.Driver</value>
              </property>
              <property name="jdbcUrl">
                     <value>jdbc:mysql://192.168.18.143:3306/wenhq?useUnicode=true&amp;characterEncoding=utf-8</value>
              </property>
              <property name="user">
                     <value>root</value>
              </property>
              <property name="password">
                     <value></value>
              </property>
       </bean>
       <bean id="slave"
              class="com.mchange.v2.c3p0.ComboPooledDataSource"
              destroy-method="close">
              <property name="driverClass">
                     <value>com.mysql.jdbc.Driver</value>
              </property>
              <property name="jdbcUrl">
                     <value>jdbc:mysql://192.168.18.144:3306/ wenhq?useUnicode=true&amp;characterEncoding=utf-8</value>
              </property>
              <property name="user">
                     <value>root</value>
              </property>
              <property name="password">
                     <value></value>
              </property>
       </bean>
   <bean id="mySqlDataSource" class="com.lvye.base.dao.impl.jdbc.DynamicDataSource"> 
          <property name="targetDataSources"> 
             <map> 
                <entry key="slave" value-ref="slave"/> 
             </map> 
          </property>
 
          <property name="defaultTargetDataSource" ref="master"/> 
   </bean> 
 <bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" scope="singleton">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="javax.persistence.validation.mode">none</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.max_fetch_depth"> 2 </prop> 
<prop key="hibernate.bytecode.use_reflection_optimizer"> true </prop> 

</props>
</property>
<property name="mappingResources">
<list>
<value>com/ietm/domain/TUser.hbm.xml</value>
<value>com/ietm/domain/TLoginLog.hbm.xml</value>
<!--  <value>com/ietmOracle/domain/TUser.hbm.xml</value> -->
</list> 
</property></bean>,经过测试是没有问题的。但是现在是想动态的连接不同的数据库,所以。那个targetDataSources属性,想后面在程序中赋值。但是经过测试发现是不行的。不知道为什么,望各位高手解答。
    这样不行之后,又想着直接在hibernate中,通过配置,构建不同sessionFactory中时,给予不同的配置赋值。已连接不同的数据库。但是还是不行。 请各位高手解答呀springhibernate数据库