`
conkeyn
  • 浏览: 1523058 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

如何在spring配置多个Hibernate数据源链接(转)

 
阅读更多

 

一、首先配置hibernate数据源:

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
	<!--1、Oracle 数据源配置 -->
	<bean id="oraclesessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation">
			<value>WEB-INF/classes/oracle-h.cfg.xml</value>
		</property>
	</bean>
	<bean id="oracletransactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>
	<!--2、SQLServer 数据源配置 -->
	<bean id="sqlServersessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation">
			<value>WEB-INF/classes/sqlserver-h.cfg.xml</value>
		</property>
	</bean>
	<bean id="sqlServerTransactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sqlServersessionFactory" />
		</property>
	</bean>  
<!--3、其他数据源配置-->  
.................  
 
    <?xml version="1.0" encoding="UTF-8"?>  
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
	<!--1、Oracle 数据源配置 -->
	<bean id="oraclesessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation">
			<value>WEB-INF/classes/oracle-h.cfg.xml</value>
		</property>
	</bean>
	<bean id="oracletransactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sessionFactory" />
		</property>
	</bean>
	<!--2、SQLServer 数据源配置 -->
	<bean id="sqlServersessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="configLocation">
			<value>WEB-INF/classes/sqlserver-h.cfg.xml</value>
		</property>
	</bean>
	<bean id="sqlServerTransactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory">
			<ref local="sqlServersessionFactory" />
		</property>
	</bean>
	<!--3、其他数据源配置 -->

  2、配置spring的事务拦截器(AOP):

    <!--1、oracle数据源 事务管理拦截器 -->
<tx:advice id="oracleTxAdvice" transaction-manager="oracletransactionManager">
	<tx:attributes>
		<tx:method name="find*" read-only="true" />
		<tx:method name="get*" read-only="true" />
		<tx:method name="notx*" propagation="NEVER" />
		<tx:method name="*" rollback-for="自定义Exception" />
	</tx:attributes>
</tx:advice>
<!--2、sqlserver数据源 事务管理拦截器 -->
<tx:advice id="sqlserverTxAdvice" transaction-manager="sqlservertransactionManager">
	<tx:attributes>
		<tx:method name="find*" read-only="true" />
		<tx:method name="get*" read-only="true" />
		<tx:method name="notx*" propagation="NEVER" />
		<tx:method name="*" rollback-for="自定义Exception" />
	</tx:attributes>
</tx:advice>
<!--3、其他数据源 事务管理拦截器 -->
.................
<!--配置多数据源的事务拦截器 -->
<bean id="serviceAutoProxyCreator"
	class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
	<property name="beanNames">
		<list>
			<value>*Service</value>
		</list>
	</property>
	<property name="interceptorNames">
		<list>
			<value>oracleTxAdvice</value>
			<value>sqlServerTxAdvice</value>
			<value>XXXXXTxAdvice</value>
		</list>
	</property>
</bean>  
 
分享到:
评论

相关推荐

    Spring+Hibernate多数据源

    接着,描述中的"Spring+Hibernate多数据源的整合实现demo"意味着这是一个实际操作的示例,它可能包含了一个或多个配置文件和Java代码,展示了如何在Spring Boot或者传统的Spring环境下配置和使用多数据源。在Spring ...

    spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码

    在多数据源的场景下,Hibernate提供了灵活的数据源配置,可以在同一个应用中管理多个数据库连接。这通常通过定义不同的SessionFactory配置和DataSource实例来实现。 **MyBatis** 则是一个轻量级的ORM框架,它比...

    springboot2.0多数据源集成hibernate配置hibernateDaoSupport示例

    对于多数据源,我们需要创建多个数据源配置,例如: ```yaml spring: datasource: primary: url: jdbc:mysql://localhost:3306/main_db username: root password: password driver-class-name: ...

    spring3+springmvc+jpa+hibernate多数据源

    "spring3+springmvc+jpa+hibernate多数据源"是一个示例项目,它演示了如何在一个应用中集成Spring 3、Spring MVC、JPA 2.0以及Hibernate,以实现对多个数据源的支持。下面将详细介绍这些技术及其集成的关键点。 **...

    spring+hibernate解决多数据源问题3.pdf

    为了操作多个数据库,需要在Spring配置文件中配置多个数据源,并为每个数据源配置相应的SessionFactory。这时会遇到如何区分和管理不同数据源下的SessionFactory的问题。 知识点四:使用GoF装饰器模式 为了更好的...

    spring集合hibernate多数据切换

    1. **配置数据源**:在Spring的配置文件中定义多个DataSource bean,每个bean代表一个数据源。例如,我们可以分别为生产环境和测试环境设置不同的数据源。 2. **配置SessionFactory**:为每个数据源创建一个...

    spring+hibernate+atomikos多数据源

    在多数据源环境中,Hibernate可以通过SessionFactory配置多个数据源,每个数据源对应一个SessionFactory。 3. **Atomikos**: Atomikos是一个开源的JTA(Java Transaction API)实现,提供分布式事务管理服务。在...

    hibernate多数据库配置

    首先,创建一个父数据源(parentDataSource),用于配置多个数据源共有的信息: ```xml &lt;property name="driverClassName" value="com.mysql.jdbc.Driver"&gt;&lt;/property&gt; &lt;property name="username" value="root"&gt;...

    针对SSH框架Spring管理Hibernate连接多个数据源配置文件

    该配置文件连接的是两个数据库结构相同的数据源,其他比如数据库结构不原理也可行。本人在遇到此问题时上网搜了很多答案结果都不怎么如意,有的太深奥不过思想很好,有的又太不给力,后来自己慢慢研究配置成功后想与...

    spring3+hibernate4+maven+junit 多库多数据源实现

    "Spring3+Hibernate4+Maven+JUnit 多库多数据源实现"是一个典型的Java Web项目配置,它涉及了多个核心技术来处理复杂的数据管理需求。下面将详细阐述这些技术以及如何协同工作以实现多库多数据源。 首先,Spring...

    spring+hibernate和spring+myBatis实现连接多个数据库,同时操作的项目

    "spring+hibernate和spring+myBatis实现连接多个数据库,同时操作的项目"是针对这种需求的一个解决方案,旨在提供一种灵活且动态的数据源切换机制。 首先,Spring框架作为Java领域中最受欢迎的应用框架之一,其强大...

    Spring 数据源不同配置

    对于需要同时连接多个数据库的应用,Spring支持多数据源配置。可以通过`@Qualifier`注解指定使用哪个数据源,或者使用`AbstractRoutingDataSource`动态路由数据源。 6. **JNDI数据源** 在应用服务器中,数据源...

    SSH配置多个数据源

    这个过程包括定义和配置多个DataSource bean,调整Hibernate和Struts2的配置以适应不同的数据源,以及在业务逻辑中适当地切换和使用这些数据源。正确配置后,SSH框架能够灵活地处理多数据库环境,提高应用的可扩展性...

    hibernate+spring配置文件

    综上,"hibernate+spring配置文件"的配置涉及多个层面,包括Spring的IoC、事务管理、数据源配置,以及Hibernate的SessionFactory、实体映射等。理解并正确配置这些元素是成功整合SSH的关键,也是提升开发效率和系统...

    hibernate数据源

    在配置 Hibernate 数据源时,通常会通过 XML 配置文件(如 `hibernate.cfg.xml`)或 Java 配置类(在 Spring Boot 中常见)来指定。例如,在 XML 文件中,可以这样配置 BasicDataSource: ```xml &lt;!-- ...

    spring 3.29+struts2.3.15.1+hibernate3 动态切换数据源

    1. 配置多个数据源:在Spring的配置文件中,定义多个`DataSource`bean,分别对应不同的数据库连接信息。 2. 创建路由数据源:定义一个基于`AbstractRoutingDataSource`的自定义数据源类,覆盖`...

    spring+jotm 多数据源事务管理(二)hibernate

    在Spring框架中,多数据源事务管理是一项关键任务,特别是在大型企业级应用中,往往需要同时操作多个数据库。本篇文章将聚焦于如何结合Spring和JOTM(Java Open Transaction Manager)来实现多数据源的事务管理,...

    spring 结合druid和hibernate使用jta配置分布式事务

    3. **配置Druid数据源**:在Spring的配置文件中,定义两个或多个Druid数据源,每个数据源对应一个数据库。每个数据源都需要设置JTA启用,指定Atomikos作为事务管理器。 4. **配置Hibernate**:配置Hibernate的...

    如何在spring框架中解决多数据源的问题

    传统的做法是在Spring和Hibernate框架中配置单一的数据源,这种方式对于单个数据源的场景是可行的,但在需要处理多个数据源的情况下则显得力不从心。 #### 解决方案 为了解决上述问题,本文将介绍一种利用Spring...

Global site tag (gtag.js) - Google Analytics