`

Spring+jta+Hibernate的跨库处理的配置

阅读更多

配置文件如下:(对应的表的引擎要是INNODB的才可以)

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xmlns:aop="http://www.springframework.org/schema/aop"

         xmlns:tx="http://www.springframework.org/schema/tx"

         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">

   

    <!-- 数据源1 -->

    <bean id="dataSource1" class="com.atomikos.jdbc.SimpleDataSourceBean" init-method="init" destroy-method="close">

    <property name="uniqueResourceName">  

            <value>mysql/main</value>  

        </property>  

        <property name="xaDataSourceClassName">  

            <!-- 使用Mysql XADataSource(mysql>=5.0, Connector/J>=5.0才可以支持XADatasource)-->  

            <value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value>

        </property>  

        <property name="xaDataSourceProperties">  

            <value>URL=jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf-8;user=root;password=123456</value>  

        </property> 

         <property name="validatingQuery">

            <value>SELECT 1</value>  

        </property>

    </bean>

    <!-- 数据源2 -->

    <bean id="dataSource2" class="com.atomikos.jdbc.SimpleDataSourceBean" init-method="init" destroy-method="close">  

        <property name="uniqueResourceName">  

            <value>mysql/secondary</value>  

        </property>  

        <property name="xaDataSourceClassName">  

            <!-- 使用Mysql XADataSource(mysql>=5.0, Connector/J>=5.0才可以支持XADatasource)-->  

            <value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value>  

        </property>

        <property name="xaDataSourceProperties">  

            <value>URL=jdbc:mysql://localhost:3306/test2?useUnicode=true&amp;characterEncoding=utf-8;user=root;password=123456</value>  

        </property>

         <property name="validatingQuery">

            <value>SELECT 1</value>  

        </property>

    </bean>

   

    <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close">

        <property name="forceShutdown" value="true"/>

    </bean>

 

    <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">

        <property name="transactionTimeout" value="300"/>

    </bean>

   

    <!-- JTA事务管理器 -->

    <bean id="springTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">

       <property name="transactionManager" ref="atomikosTransactionManager"/>

       <property name="userTransaction" ref="atomikosUserTransaction"/>

    </bean>

   

    <!-- 第一个sessionFactory,有多少个数据库就要有多少个数据源,也就要有多少个sessionFactory,每个sessionFactory对应一个数据源 -->

    <bean id="sessionFactory1" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

       <property name="dataSource" ref="dataSource1"/>

       <property name="annotatedClasses">

           <list>

              <value>org.zsl.jta.model.User</value>

           </list>

       </property>

       <property name="hibernateProperties">

           <props>

              <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

              <prop key="hibernate.show_sql">true</prop>

              <prop key="hibernate.hbm2ddl.auto">update</prop>

              <!--

              <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>

              <prop key="hibernate.cache.use_query_cache">true</prop>

               -->

           </props>

       </property>

    </bean>  

分享到:
评论

相关推荐

    Spring+Jotm+Hibernate+Oracle+Junit 实现JTA分布式事务要求Demo工程

    2.Spring+Jotm整合实现JTA分布式事务,应用场景如转账等,同一事务内完成db1用户加100元、db2用户减100元。 3.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 (特别注意:Spring3.0里不在提供对jotm的...

    第二部分spring+hibernate+jta 分布式事务Demo

    本示例“第二部分spring+hibernate+jta 分布式事务Demo”将帮助我们理解如何在这三个框架之间协同工作,实现高效且可靠的事务管理。 首先,让我们深入了解一下这三个组件: 1. **Spring**:这是一个全面的Java应用...

    Jboss4.2.2+Spring2.5.6+hibernate+JTA事务的实现

    "Jboss4.2.2+Spring2.5.6+Hibernate+JTA事务的实现"就是一个典型的例子,它涉及到四个关键的技术栈,即JBoss Application Server 4.2.2、Spring 2.5.6、Hibernate ORM以及Java Transaction API(JTA)。这些技术的...

    spring+hibernate+jta demo

    《Spring、Hibernate与JTA在MyEclipse中的整合实践》 在现代企业级应用开发中,Spring、Hibernate和Java Transaction API(JTA)是常见的技术组合。Spring作为轻量级的IoC(Inversion of Control)和AOP(Aspect ...

    Spring boot+Atomikos+JTA+Hibernate+MySQL实现分布式事务+多数据源(可运行)

    本项目使用Spring Boot、Atomikos、JTA(Java Transaction API)、Hibernate和MySQL来实现分布式事务处理和多数据源管理,以确保在多个数据库操作之间保持事务的ACID特性。 首先,Spring Boot作为微服务开发的主流...

    spring+struts2+hibernate框架说明

    SSH框架的优势在于,Struts处理Web交互,Spring管理业务逻辑和对象,Hibernate处理数据持久化,三者分工明确,协同工作,大大提高了开发效率,降低了系统耦合度。这种框架组合为开发者提供了一套完整的解决方案,...

    JTA-demo:spring+hibernate+jta+mysql

    标题“JTA-demo:spring+hibernate+jta+mysql”揭示了一个集成示例,它展示了如何在Java应用中使用Spring框架、Hibernate ORM工具以及Java Transaction API(JTA)来管理事务,同时与MySQL数据库进行交互。...

    Spring boot+Atomikos+JTA+Hibernate+mybatis+MySQL实现分布式事务+多数据源

    本案例主要探讨如何利用Spring Boot、Atomikos、JTA(Java Transaction API)、Hibernate以及MyBatis,结合MySQL数据库,实现一个跨数据源的分布式事务解决方案。 首先,Spring Boot是一个基于Spring框架的快速开发...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...

    JSF+Spring+Hibernate小例子

    基于网上很多朋友在问JSF+Spring+Hibernate的使用方法,于是抽空写了个小例子希望大家提出宝贵意见。 采用DBUnit测试 mysql数据库脚本: 新建test数据库,初始化脚本 create table tt(id int primary key,name ...

    struts1+spring+hibernate所需jar包

    配置文件(如`struts-config.xml`、`spring-servlet.xml`、`hibernate.cfg.xml`)也需要正确设置,以定义应用程序的行为和组件间的交互。 总的来说,"struts1+spring+hibernate所需jar包"是Java Web开发中的基础...

    用户注册和登录是每个系统的必须存在的一部分,基于Dwr+Struts2+Spring+Hibernate写了一个用户登录注册系统

     全部业务控制交由Spring去进行处理。事务处理也交由Spring去管理。  压缩文件中不包含Jar文件(由于全部的Jar将近12M,不能全部上传),所用到的Jar目录为,工程中再也不会出现由于MyEclipse自动整合而出现的大量...

    Struts2+Spring2+hibernate整合开发所需要的基本JAR包

    5. `dom4j.jar`:XML处理库,Hibernate使用它来解析配置文件。 整合这三个框架时,还需要一些其他的依赖,如: 1. `log4j.jar`:日志记录框架,通常在Java项目中广泛使用。 2. `commons-logging.jar`:Apache ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.6.16 编写Spring和Hibernate的配置文件spring-config.xml 12.6.17 编写web.xml 12.6.18 验证示例 12.7 小结 第四篇 J2EE项目案例精选 第十三章 网上调查系统 13.1 系统概述 13.2 需求分析 13.2.1 系统用例图 ...

    spring+hibernate+struts架包

    Spring、Hibernate和Struts是Java开发中的三大主流框架,它们分别负责不同的职责,共同构建了企业级应用的基础架构。Spring作为一个全面的轻量级容器,提供了依赖注入(DI)和面向切面编程(AOP)的功能,使得代码...

    Spring+Struts2+Spring3+Hibernate3三大框架整合

    - JtaTransactionManager:用于JTA(Java Transaction API),处理跨越多个资源的事务。 事务隔离级别的选择对于解决并发问题至关重要。例如,READ_UNCOMMITTED可能导致所有并发问题,READ_COMMITTED防止脏读但...

Global site tag (gtag.js) - Google Analytics