没有合适的资源?快使用搜索试试~ 我知道了~
基于框架的Web开发-spring事务入门一个转账的例子.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 125 浏览量
2022-07-04
15:42:40
上传
评论
收藏 1.86MB DOC 举报
温馨提示
试读
7页
4.1 spring事务入门---一个转账的例子 1 事务 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败。 1.1 事务的特性 原子性:强调事务的不可分割。 一致性:事务的执行的前后数据的完整性保持一致。 隔离性:一个事务执行的过程中,不应该受到其他事务的干扰。 持久性:事务一旦结束,数据就持久到数据库。 1.2 如果不考虑隔离性引发安全性问题 脏读:一个事务读到了另一个事务的未提交的数据 不可重复读:一个事务读到了另一个事务已经提交的update的数据导致多次查询结果不一致. 虚幻读:一个事务读到了另一个事务已经提交的insert的数据导致多次查询结果不一致. 1.3 解决读问题:设置事务隔离级别 未提交读:脏读,不可重复读,虚读都有可能发生 已提交读:避免脏读。但是不可重复读和虚读有可能发生 可重复读:避免脏读和不可重复读.但是虚读有可能发生. 串行化的:避免以上所有读问题. 2 一个转账的例子 例子模拟两个账户之间的转账操作,基本业务逻辑如下: A账户,余额1000元 B账户,余额1000元 Transfer(A账户,B账户,100)将从A账户转出
资源推荐
资源详情
资源评论
4.1 spring 事务入门---一个转账的例子
1 事务
事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败。
1.1 事务的特性
原子性:强调事务的不可分割。
一致性:事务的执行的前后数据的完整性保持一致。
隔离性:一个事务执行的过程中,不应该受到其他事务的干扰。
持久性:事务一旦结束,数据就持久到数据库。
1.2 如果不考虑隔离性引发安全性问题
脏读:一个事务读到了另一个事务的未提交的数据
不可重复读:一个事务读到了另一个事务已经提交的 update 的数据导致多次查询结果不一致.
虚幻读:一个事务读到了另一个事务已经提交的 insert 的数据导致多次查询结果不一致.
1.3 解决读问题:设置事务隔离级别
未提交读:脏读,不可重复读,虚读都有可能发生
已提交读:避免脏读。但是不可重复读和虚读有可能发生
可重复读:避免脏读和不可重复读.但是虚读有可能发生.
串行化的:避免以上所有读问题.
2 一个转账的例子
例子模拟两个账户之间的转账操作,基本业务逻辑如下:
A 账户,余额 1000 元
B 账户,余额 1000 元
Transfer(A 账户,B 账户,100)将从 A 账户转出 100 元到 B 账户,成功转账后,A 账户余额
900 元,B 账户余额 1100 元。
显然,转账操作涉及两次数据库操作,第一次减少 A 账户的余额,第二次增加 B 账户的余额。这两
个操作要么都成功完成,要么一起失败,不能出现“钱从 A 转出,没有到 B 账户”或者“A 账户余额没变,B
账户多了钱”这些情况。因此 Transfer 操作应该进行事务管理。
在加入事务管理之前,先把这个例子用 spring+JDBC 实现,并进行测试。
2.1 创建工程 springTransaction
创建工程 springTransaction,工程文件夹结构和文件如下图所示,注意事项:
(1) 工程结构上和前一章不同的地方已经在图上标出,未标出的文件和上一章功能类似。
(2) 先按照图片所示,将工程、包、类、接口、文件建好,其中和 jdbc.properties 文件可以从上
资源评论
知识世界
- 粉丝: 355
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功