`

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>  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics