通过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>
按其所需使用不同的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>