Spring连接多个数据源

来源:互联网 发布:怎样做网络宣传 编辑:程序博客网 时间:2024/05/20 11:23

Spring官方文档:http://spring.io/blog/2007/01/23/dynamic-datasource-routing/

http://tonylian.iteye.com/blog/847091

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

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

 

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

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

 

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

 

Xml代码  收藏代码
  1. <!-- 定义两个数据源dataSource1和dataSource2 -->     
  2. <bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">       
  3.     <property name="driverClassName">       
  4.         <value>com.ibm.db2.jcc.DB2Driver</value>       
  5.     </property>       
  6.     <property name="url">       
  7.         <value>jdbc:db2://172.168.1.1:50001/MYDB1</value>       
  8.     </property>       
  9.     <property name="username">       
  10.         <value>user</value>       
  11.     </property>       
  12.     <property name="password">       
  13.         <value>password</value>       
  14.     </property>       
  15. </bean>     
  16.   
  17. <bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">       
  18.     <property name="driverClassName">       
  19.         <value>com.ibm.db2.jcc.DB2Driver</value>       
  20.     </property>       
  21.     <property name="url">       
  22.         <value>jdbc:db2://172.168.1.1:50001/MYDB2</value>       
  23.     </property>       
  24.     <property name="username">       
  25.         <value>user</value>       
  26.     </property>       
  27.     <property name="password">       
  28.         <value>password</value>       
  29.     </property>       
  30. </bean>     
  31.   
  32. <!-- 定义数据源1和数据源2的sqlMapClient,使用同一个SqlMapConfig.xml -->     
  33. <bean id="sqlMapClient1" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">     
  34.     <property name="configLocation">     
  35.         <value>SqlMapConfig.xml</value>     
  36.     </property>     
  37.     <property name="dataSource">     
  38.         <ref bean="dataSource1" />     
  39.     </property>     
  40. </bean>     
  41.   
  42. <bean id="sqlMapClient2" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">     
  43.     <property name="configLocation">     
  44.         <value>SqlMapConfig.xml</value>     
  45.     </property>     
  46.     <property name="dataSource">     
  47.         <ref bean="dataSource2" />     
  48.     </property>     
  49. </bean>     
  50.   
  51. <!-- dao1和dao2分别对应位于不同数据源的结构相同的同名表, 因此使用同一个DAOImpl(自然也就是同一个SqlMap) -->     
  52. <bean id="dao1" class="x.y.XxxxDAOImpl">     
  53.     <property name="sqlMapClient">     
  54.         <ref bean="sqlMapClient1" />     
  55.     </property>     
  56. </bean>     
  57.      
  58. <bean id="dao2" class="x.y.XxxxDAOImpl">     
  59.     <property name="sqlMapClient">     
  60.         <ref bean="sqlMapClient2" />     
  61.     </property>     
  62. </bean>  
0 0
原创粉丝点击