日期:2014-05-16 浏览次数:20432 次
通过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>
?
?