`
benbenxiongyuan
  • 浏览: 108663 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

spring ibatis 多数据源 事务配置

    博客分类:
  • Java
阅读更多
网上找的,spring+ibatis+struts1.2 的多数据源事务配置。没试过。先做下记录。

jdbc.properties文件内容:
jdbc2.driverClassName=net.sourceforge.jtds.jdbc.Driver
jdbc2.url=jdbc:jtds:sqlserver://10.101.122.9:1433/testdb;charset=gb2312
jdbc2.username=user1
jdbc2.password=password

jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@10.101.126.29:1521:DBSERVER
jdbc.username=user1
jdbc.password=password

applicationContext.xml配置文件内容如下:
<?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>
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
    <list>
      <value>jdbc.properties</value>
    </list>
</property>
</bean>
<!-- =========================transactionManager========================= -->
<bean id="autoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
    <value>*Service</value>
</property>
<property name="interceptorNames">
    <list>
      <value>transactionInterceptor</value>
       <value>transactionInterceptor2</value>
    </list>
</property>
</bean>

<!-- =========================oracle dataSource========================= -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
   <property name="driverClassName" value="${jdbc.driverClassName}"/>
   <property name="url" value="${jdbc.url}"/>
   <property name="username" value="${jdbc.username}"/>
   <property name="password" value="${jdbc.password}"/>

</bean>
       <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   <property name="dataSource" ref="dataSource"/>
</bean>
      <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
   <property name="transactionManager" ref="transactionManager"/>
                <property name="transactionAttributes">
                <props>
                <prop key="insert*">PROPAGATION_REQUIRED</prop>
                <prop key="delete*">PROPAGATION_REQUIRED</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>
                <prop key="do*">PROPAGATION_REQUIRED</prop>
                 </props>
                </property>
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
   <property name="configLocation" value="sql-map-config.xml"/>
   <property name="dataSource" ref="dataSource"/>
</bean>
<!-- =========================sqlserver dataSource========================= -->
   <bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
   <property name="driverClassName" value="${jdbc2.driverClassName}"/>
   <property name="url" value="${jdbc2.url}"/>
   <property name="username" value="${jdbc2.username}"/>
   <property name="password" value="${jdbc2.password}"/>
</bean>
    <bean id="transactionManager2" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   <property name="dataSource" ref="dataSource2"/>
</bean>
<bean id="transactionInterceptor2" class="org.springframework.transaction.interceptor.TransactionInterceptor">
   <property name="transactionManager" ref="transactionManager2"/>
                <property name="transactionAttributes">
                <props>
                <prop key="insert*">PROPAGATION_REQUIRED</prop>
                <prop key="delete*">PROPAGATION_REQUIRED</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>
                <prop key="do*">PROPAGATION_REQUIRED</prop>
                 </props>
                </property>
</bean>
   <bean id="sqlMapClient2" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
   <property name="configLocation" value="sql-map-config.xml"/>
   <property name="dataSource" ref="dataSource2"/>
</bean>


   <!-- =========================DAO配置 example ========================= -->
        <bean id="FirstDAO" class="com.demo.impl.FirstDAOImpl">
   <property name="sqlMapClient" ref="sqlMapClient"/>
</bean>
       <bean id="SecondDAO" class="com.demo.impl.SecondDAOImpl">
   <property name="sqlMapClient" ref="sqlMapClient2"/>
</bean>

   <bean id="FirstService" class="com.demo.impl.FirstServiceImpl">
        <property name="firstDAO" ref="FirstDAO"/>
   </bean>
   <bean id="SecondService" class="com.demo.impl.SecondServiceImpl">
      <property name="secondDAO" ref="SecondDAO"/>
   </bean>
</beans>




分享到:
评论
4 楼 bo_hai 2012-12-14  
你们配置成功了吗 ?我按你的方案配置,事务不回滚呀。求指教 ?
3 楼 zqwfd 2011-06-17  
牛c,比nb狠
2 楼 benbenxiongyuan 2011-06-17  
zqwfd 写道
nc高手啊

nc是啥意思?
1 楼 zqwfd 2011-06-16  
nc高手啊

相关推荐

    iBATIS实战

    11.2 为其他数据源使用DAO模式 203 11.2.1 示例:为LDAP使用DAO 203 11.2.2 示例:为Web服务使用DAO 208 11.3 使用Spring DAO 209 11.3.1 编写代码 209 11.3.2 为什么使用Spring代替iBATIS 211 11.4 创建自己的DAO层...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言...

    Spring 2.0 开发参考手册

    2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. ...

    spring chm文档

    2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. JPA 2.4.3. 异步的JMS 2.4.4. JDBC 2.5. Web层 2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. ...

    JTA事务源码示例

    Spring+iBatis+JOTM实现JTA事务: 如何处理跨库事物:spring + jtom 的jta事务是个很好的选择. 这个源码示例非常不错,包括所有的源码和jar包,下载后eclipse 或 myeclipse 导入就能用。 里面有详细的说明和注释,...

    Spring中文帮助文档

    2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere 事务管理的完整支持 2.4.3. JPA 2.4.4. 异步的JMS 2.4.5. JDBC 2.5. Web层 2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于...

    spring applicationContext 配置文件

    &lt;bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean" p:dataSource-ref="dataSourceProxy"&gt; &lt;value&gt;classpath:SqlMapConfig.xml&lt;/value&gt; &lt;/property&gt; ...

    Spring API

    2.4.1. 在XML里更为简单的声明性事务配置 2.4.2. 对Websphere 事务管理的完整支持 2.4.3. JPA 2.4.4. 异步的JMS 2.4.5. JDBC 2.5. Web层 2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于...

    Spring in Action(第2版)中文版

    5.2配置数据源 5.2.1使用jndi数据源 5.2.2使用数据源连接池 5.2.3基于jdbc驱动的数据源 5.3在spring里使用jdbc 5.3.1处理失控的jdbc代码 5.3.2使用jdbc模板 5.3.3使用spring对jdbc的dao支持类 5.4在spring里...

    Spring in Action(第二版 中文高清版).part2

    5.2 配置数据源 5.2.1 使用JNDI数据源 5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 5.3 在Spring里使用JDBC 5.3.1 处理失控的JDBC代码 5.3.2 使用JDBC模板 5.3.3 使用Spring对JDBC的DAO支持类 5.4...

    Spring in Action(第二版 中文高清版).part1

    5.2 配置数据源 5.2.1 使用JNDI数据源 5.2.2 使用数据源连接池 5.2.3 基于JDBC驱动的数据源 5.3 在Spring里使用JDBC 5.3.1 处理失控的JDBC代码 5.3.2 使用JDBC模板 5.3.3 使用Spring对JDBC的DAO支持类 5.4...

    springmybatis

    3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 ...

    Spring面试题

    正如我将在下一个示例中演示的那样,Spring 框架使用 JavaBean 属性和配置数据来指出必须设置的依赖关系。 BeanFactory 接口 因为 org.springframework.beans.factory.BeanFactory 是一个简单接口,所以可以针对...

    Spring Framework 5.3.6

    • 内建的针对JTA和 单个JDBC数据源的一般化策略,使 Spring 的事务支持不要求Java EE环境,这与一般的JTA或者EJB CMT相反。 • JDBC抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码),简化了错误...

Global site tag (gtag.js) - Google Analytics