答复: Hibernate如何动态链接数据库?
<p>首先定义两个可以切换的数据源</p>
<p><bean id="dataSource"<br> class="org.apache.commons.dbcp.BasicDataSource"<br> destroy-method="close"><br> <property name="driverClassName"<br> value="oracle.jdbc.driver.OracleDriver" /><br><br> <property name="url" value="${jdbc.url}" /><br> <property name="username" value="${jdbc.username}" /><br> <property name="password" value="${jdbc.password}" /><br> </bean></p>
<p>?</p>
<p><bean id="dataSource1"<br>??? ??? class="org.apache.commons.dbcp.BasicDataSource"<br>??? ??? destroy-method="close"><br>??? ??? <property name="driverClassName" value="com.mysql.jdbc.Driver" /><br>??? ??? <property name="url" value="${jdbc.url1}"/><br>??? ??? <property name="username" value="${jdbc.username1}" /><br>??? ??? <property name="password" value="${jdbc.password1}" /><br>??? </bean></p>
<p>?</p>
<p>?</p>
<p>2.定义spring 代理 </p>
<p>?</p>
<p><bean id="swapper"? class="org.springframework.aop.target.HotSwappableTargetSource"><br>? ??? ??? ?<constructor-arg><ref local="dataSource"/></constructor-arg><br>??? </bean><br>??? <br>??? <bean id="swappableDataSource" class="org.springframework.aop.framework.ProxyFactoryBean"><br>??? <property name="targetSource"><br>??????? <ref local="swapper"/><br>??? </property><br></bean></p>
<p>?</p>
<p>3. 注入datasource</p>
<p>??? <bean id="testdao"<br>??? ??? class="com.coolhong.test.dao.testdaoibatis"><br>??? ??? <property name="dataSource" ref="swappableDataSource" /><br>??? </bean></p>
<p>?</p>
<p>4. 切换datasource代码:</p>
<p>?</p>
<p>?HotSwappableTargetSource swapper = (HotSwappableTargetSource) ctx.getBean("swapper");<br>??? ??? ??? ?? Object newTarget = ctx.getBean("dataSource1");<br>??? ??? ??? ?? swapper.swap(newTarget);</p>
<p>?</p>
<p>这个时候datasource 就自动切换到datasource1</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>?</p>
<p>第一次回复 ,如果有什么错误的地方 请指正</p>
<p>?</p>
<p>?</p>
<p>?</p>