如何使用hibernate对不同数据库的两张表进行增删改,而且要在hibernate的xml文件中实现
1个回答
展开全部
配置两个数据源,两个DAO对象,分别使用不同的数据源就可以了
<!-- 定义数据源 -->
<bean id="dataSource1" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="${jdbc.driver}"/>
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="${jdbc.url}"/>
<!-- 指定连接数据库的用户名 -->
<property name="user" value="${jdbc.username}"/>
<!-- 指定连接数据库的密码 -->
<property name="password" value="${jdbc.password}"/>
...
</bean>
<bean id="dataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="${jdbc.driver1}"/>
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="${jdbc.url1}"/>
<!-- 指定连接数据库的用户名 -->
<property name="user" value="${jdbc.username1}"/>
<!-- 指定连接数据库的密码 -->
<property name="password" value="${jdbc.password1}"/>
...
</bean>
...
<!-- SessionFactory配置 -->
<bean id="sessionFactory_old" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource1" />
...
</bean>
<bean id="sessionFactory_new" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource2" />
...
</bean>
DAO:
@Repository
public class BaseDao<T> extends HibernateDaoSupport {
protected Class<T> entityClass;
private SessionFactory mySessionFacotry;
@Resource(name="sessionFactory_old")
public void setMySessionFacotry(SessionFactory sessionFacotry) {
this.mySessionFacotry = sessionFacotry;
}
@PostConstruct
public void injectSessionFactory() {
super.setSessionFactory(this.mySessionFacotry);
}
}
@Repository
public class NewBaseDao<T> extends HibernateDaoSupport {
protected Class<T> entityClass;
private SessionFactory mySessionFacotry;
@Resource(name="sessionFactory_new")
public void setMySessionFacotry(SessionFactory sessionFacotry_new) {
this.mySessionFacotry = sessionFacotry_new;
}
@PostConstruct
public void injectSessionFactory() {
super.setSessionFactory(this.mySessionFacotry);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询