关于重构那点事

2015-11-03 18:02:42 +08:00
 li24361

背景:项目初期,为了提早上线,买了一个系统,然后就上线了,代码全是他们自己封装的。
现在要重构,表不能改,原来大量的用的 jdbc ,使用 for update 来进行行锁
现在改成 spring mybatis ,只用事务的话,还需要 for update 吗?

金融类的,有没有比较好的框架 对同步和冰法支持比较好的,大家推荐下

1864 次点击
所在节点    程序员
6 条回复
mahone3297
2015-11-03 18:04:32 +08:00
底层,都用 for update 来锁的吧?还有其他所的方式吗?
SmiteChow
2015-11-04 16:13:38 +08:00
事务和同步锁是两种概念,需要同时使用。
li24361
2015-11-04 17:46:25 +08:00
@SmiteChow 额,我就是这里有点混乱,看来还是要加锁的对吧
SmiteChow
2015-11-04 18:19:23 +08:00
@li24361 是的,事务说的是 ABC 三个操作中任意错误都回滚撤销 ABC 的操作,同步锁说的是,如果当前线程执行 B 操作导致 R 记录被锁,那么其他线程执行 B 时会等待直到超时或得到锁才能进行读写 R ,如果没有锁,那么可能同时两个线程修改 R ,导致更新丢失。
li24361
2015-11-04 19:15:30 +08:00
@SmiteChow 那请教一下,如果用 spring +mybatis ,还是要使用 jdbc 的 for update 方式来锁定吗?
SmiteChow
2015-11-04 23:55:15 +08:00
@li24361 虽然我没使用过你说的两个框架,但框架仅仅是框架,你可以看看有没有封装过事务和同步锁,有的话就直接用, 没有自己写也没什么。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/233321

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX