网上找的,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>
分享到:
相关推荐
给定的XML配置文件展示了如何在Spring中配置ibatis数据源以及ibatis事务管理器。首先,注释掉的`BasicDataSource`部分是用来配置数据源的,这里没有启用,而是选择了使用JNDI数据源。实际生产环境中,通常会使用...
7. **AOP事务配置**:接下来,我们需要在Spring中配置AOP事务规则,定义哪些方法需要在事务中执行。通常使用`@Transactional`注解,但要在配置文件中开启注解驱动的事务管理。 ```xml ``` 8. **使用示例**:在...
最值得关注的部分是iBatis的事务管理配置,这里明确指定了事务管理器的类型为`JDBC`,并且定义了数据源的具体参数。 ```xml ``` 这样的配置意味着iBatis将使用JDBC的方式进行事务管理,即所有的事务...
在Spring中,事务管理器会与数据源配合,处理事务的开始、提交和回滚。 3. **@Transactional注解**:在业务服务类的方法上添加此注解,即可启用声明式事务管理。注解可以指定传播行为(如REQUIRED、REQUIRES_NEW等...
7. 事务配置:根据业务需求,配置Spring的事务管理器,如PlatformTransactionManager,以控制事务的边界。 8. 整合测试:编写测试类,通过@Autowired注解注入DAO接口,进行数据库操作的测试,确保Spring和iBatis的...
在iBatis中,我们可以通过Spring框架的`AbstractRoutingDataSource`来实现类似的功能,它可以根据上下文信息(如线程绑定的变量)动态选择数据源。不过,如果需要自定义更复杂的逻辑,比如基于用户权限的数据源切换...
1. 配置数据源(DataSource):这是所有数据库操作的基础,需要指定数据库连接的相关参数。 2. 创建SqlSessionFactory:使用`SqlSessionFactoryBean`,并注入数据源,生成SqlSessionFactory实例。 3. 创建...
2. `sqlMapConfig.xml`:iBatis的配置文件,定义了数据源、事务管理器以及映射文件的位置。 标签中提到的`springmvc`是Spring的一个模块,Spring MVC提供了模型-视图-控制器架构,用于处理HTTP请求和响应。配置...
下面将详细介绍如何在Spring中配置和使用多个数据源,以及结合Ibatis进行数据访问。 首先,我们需要在`jdbc.properties`文件中配置每个数据源的相关参数,如驱动类名、URL、用户名和密码。在这个例子中,有两个数据...
同时,Spring的`applicationContext.xml`会配置bean,包括数据源、事务管理器以及业务服务接口和实现。对于iBatis,`sqlmapconfig.xml`会配置数据源和SQL映射文件。 【标签】:“源码”和“工具” "源码"标签表明...
Spring 配置文件中定义数据源、事务管理器以及 SqlSessionFactoryBean;iBATIS 配置文件中则包含数据源信息、SQL 映射文件路径等。 4. **MyBatis-Spring 桥接库**:为了简化整合过程,可以使用 MyBatis-Spring 这个...
这包括在Spring配置文件中定义数据源、事务管理器以及对应的bean;在Struts的配置文件中定义Action并指定其事务属性;最后,在iBATIS的配置中设置数据源,并编写针对读库和写库的SQL映射文件。 值得注意的是,数据...
综上所述,`iBatis_Spring`源代码的学习涵盖了数据库连接、SQL映射、事务处理、依赖注入等多个核心概念,通过深入理解这些知识点,开发者可以更好地掌握企业级Java应用的开发技巧。在实际项目中,这样的整合可以带来...
2. **配置数据源**:在Spring的配置文件中定义数据源(DataSource),这是Spring与数据库交互的基础。可以使用Apache Commons DBCP或者C3P0等连接池实现。 ```xml <!-- 数据源配置 --> ``` 3. **配置...
- 集成Hibernate或Ibatis,配置数据源、SessionFactory(或SqlSessionFactory)以及实体映射。 - 编写DAO接口和实现,利用Hibernate的Session或Ibatis的SqlSession执行数据库操作。 - 在Action中注入Service,由...
6. **配置数据源**:在Spring中配置数据源,以便iBatis能够连接数据库。 7. **编写Mapper接口和XML文件**:定义数据库操作接口,XML文件中编写具体的SQL语句。 8. **测试**:编写JUnit测试或在实际应用中测试整合后...
在SpringMVC+Spring+Ibatis的架构中,多数据源配置是一项重要特性。这允许应用连接到多个数据库,根据业务需求选择合适的数据库进行操作。在Spring中,可以通过DataSourceRouter或AbstractRoutingDataSource实现动态...