Spring对jdbc的事务管理——基于XML配置

本文介绍在JDBC操作数据库时如何通过事务管理确保数据一致性。详细解释了事务的概念,即当一组操作中任何一个失败,所有已完成的操作都将被回滚。并通过XML配置示例展示了如何设置数据源、事务管理器及事务属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jdbc操作数据库的时候,完成一个需求,可能需要多个其他服务一起完成后,才算完成。在这个过程中,就会产生服务是否全都成功了的问题,最直接的后果,会对我们的数据产生影响。比如A转100元给B,A的账户要减掉100,B的账户要加100,这是两个操作,如果只成功了一个,就会产生数据不准的问题,而事务管理简单说就是两个操作都成功算成功,如果其中一个操作失败,就将已经成功了的操作回滚,这样就保证了数据的正确性。

具体步骤:

1.书写操作的各类(举例说明了)

2、xml的配置

<!--配置数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="user" value="${jdbc.user}"></property>
		<property name="password" value="${jdbc.password}"></property>
		<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
		<property name="driverClass" value="${jdbc.driverClass}"></property>
		<property name="minPoolSize" value="${jdbc.maxPoolSize}"></property>
		<property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
	</bean>
<!--配置各种bean-->
	<bean id="bookDao" class="BookDao">
		<property name="jdbcTemplate" ref="jdbcTemplate"></property>
	</bean>
	<bean id="accountDao" class="AccountDao">
		<property name="jdbcTemplate" ref="jdbcTemplate"></property>
	</bean>
	<bean id="bookService" class="BookService">
		<property name="bookDao" ref="bookDao"></property>
		<property name="accountDao" ref="accountDao"></property>
	</bean>
	<bean id="cashierImpl" class="CashierImpl">
		<property name="bookService" ref="bookService"></property>
	</bean>
	<!-- 配置spring的template -->
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	<!-- 配置事务管理器 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	<!-- 配置事务属性 -->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
               <!-- 配置事务的传播行为 -->
			<tx:method name="buybooks" propagation="REQUIRED" />
			<tx:method name="*"/>
		</tx:attributes>
	</tx:advice>
	<!-- 配置事务切入点,并关联事务属性 -->
	<aop:config>
		<aop:pointcut expression="execution(* spring.jdbc.dao.xml.*.*(..))" id="txPointCut"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
	</aop:config>

在事务属性里处理可以配置事务的传播行为,还可以配置事务的其他具体行为。

这是自己在学习的时候记点笔记,如有错误,请指正,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值