博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
事务管理_xml配置aop事务
阅读量:5937 次
发布时间:2019-06-19

本文共 2531 字,大约阅读时间需要 8 分钟。

举例a向b转账,通过money总量来查看在转账出现异常时数据能否保持一致性。

主体结构 jar包

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

db.properties:

jdbc.jdbcUrl=jdbc:mysql:///spring_day03jdbc.driverClass=com.mysql.jdbc.Driverjdbc.user=rootjdbc.password=root

applicationContext.xml:

1 
2
8
9 10
11
12
13
14
15
16
17 18
19
20
21
22 23
24
25
26
27 28
29
30
31
32 33
34
35
36
37
38
39 40
41
42
43
44
45 46 47 48

AccountDaoImpl.java:

package com.kong.dao;import org.springframework.jdbc.core.support.JdbcDaoSupport;public class AccountDaoImpl extends JdbcDaoSupport implements AccountDao {	@Override	public void addMoney(Integer id, double money) {		String sql = "update t_account set money = money + ? where id = ?";		super.getJdbcTemplate().update(sql,money,id);	}	@Override	public void subMoney(Integer id, double money) {		String sql = "update t_account set money = money - ? where id = ?";		super.getJdbcTemplate().update(sql,money,id);	}}

AccountServiceImpl.java:

package com.kong.service;import com.kong.dao.AccountDao;public class AccountServiceImpl implements AccountService {		private AccountDao accountDao;		public void setAccountDao(AccountDao accountDao) {		this.accountDao = accountDao;	}	@Override	public void transfer(Integer from, Integer to, double money) {		accountDao.subMoney(from, money);		System.out.println(1/0);//插入出错代码		accountDao.addMoney(to, money);	}}

Mytest.java:

package com.kong.test;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.kong.service.AccountService;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")public class MyTest {	@Resource(name = "accountService")	private AccountService accountService;	@Test	//id=1向id=2转账100	public void test_01() {		accountService.transfer(1, 2, 100d);	}} 

原表数据:

 若未配置织入(line 41~44@applicationContext.xml),则在出现异常时运行结果为:

若配置了织入,则在出现异常时程序的运行结果为:


在引入spring 事务管理后,可以保持数据的一致性

 

 

转载于:https://www.cnblogs.com/kongieg/p/11082512.html

你可能感兴趣的文章
有序的双链表
查看>>
程序员全国不同地区,微信(面试 招聘)群。
查看>>
【干货】界面控件DevExtreme视频教程大汇总!
查看>>
闭包 !if(){}.call()
查看>>
python MySQLdb安装和使用
查看>>
Java小细节
查看>>
poj - 1860 Currency Exchange
查看>>
chgrp命令
查看>>
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
linux 笔记本的温度提示
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>
iis6 zencart1.39 伪静态规则
查看>>
SQL Server代理(3/12):代理警报和操作员
查看>>