在项目中使用多个数据源sessionfactory

适用范围:适合SSH架构访问多个数据库,数据库的类型和表结构不必相同,,且没有跨库事务的情况(跨库事务最好用分布式事务处理)。

实现方式:我们可以在spring的配置文件中配置多个sessionFactory,如:<bean destroy-method=”close”> <property> <value>${adriver}</value> </property> <property> <value>${aurl}</value> </property> <property> <value>${ausername}</value> </property> <property> <value>${apassword}</value> </property></bean><bean destroy-method=”close”> <property> <value>${bdriver}</value> </property> <property> <value>${burl}</value> </property> <property> <value>${busername}</value> </property> <property> <value>${bpassword}</value> </property></bean><bean destroy-method=”close”> <property> <value>${cdriver}</value> </property> <property> <value>${curl}</value> </property> <property> <value>${cusername}</value> </property> <property> <value>${cpassword}</value> </property></bean>

<!– Hibernate SessionFactorys –><bean> <property> <ref local=”aDataSource” /> </property> <property> <list> <value> .hbm.xml文件 </value> </list> </property> <property> <props> <prop key=”hibernate.dialect”> ${ahibernate.dialect} </prop> <prop key=”hibernate.show_sql”>true</prop> <prop key=”format_sql”>true</prop> </props> </property></bean><bean> <property> <ref local=”bDataSource” /> </property> <property> <list> <value> .hbm.xml文件 </value> </list> </property> <property> <props> <prop key=”hibernate.dialect”> ${bhibernate.dialect} </prop> <prop key=”hibernate.show_sql”>true</prop> <prop key=”format_sql”>true</prop> </props> </property></bean><bean> <property> <ref local=”cDataSource” /> </property> <property> <list> <value> .hbm.xml文件 </value> </list> </property> <property> <props> <prop key=”hibernate.dialect”> ${chibernate.dialect} </prop> <prop key=”hibernate.show_sql”>true</prop> <prop key=”format_sql”>true</prop> </props> </property></bean><bean> <property><ref local=”aSessionFactory”/></property></bean>注意:最后一个com.cintel.dcp.datasource.MultiSessionFactory要自己实现,它实现了SessionFactory接口和ApplicationContext接口,如下:package com.cintel.dcp.datasource;

import java.io.Serializable;import java.sql.Connection;import java.util.Map;import java.util.Set;

import javax.naming.NamingException;import javax.naming.Reference;

木已成舟便要顺其自然

在项目中使用多个数据源sessionfactory

相关文章:

你感兴趣的文章:

标签云: