V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
li24361
V2EX  ›  程序员

关于重构那点事

  •  
  •   li24361 · 2015-11-03 18:02:42 +08:00 · 1860 次点击
    这是一个创建于 3300 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    6 条回复    2015-11-04 23:55:15 +08:00
    mahone3297
        1
    mahone3297  
       2015-11-03 18:04:32 +08:00
    底层,都用 for update 来锁的吧?还有其他所的方式吗?
    SmiteChow
        2
    SmiteChow  
       2015-11-04 16:13:38 +08:00
    事务和同步锁是两种概念,需要同时使用。
    li24361
        3
    li24361  
    OP
       2015-11-04 17:46:25 +08:00
    @SmiteChow 额,我就是这里有点混乱,看来还是要加锁的对吧
    SmiteChow
        4
    SmiteChow  
       2015-11-04 18:19:23 +08:00
    @li24361 是的,事务说的是 ABC 三个操作中任意错误都回滚撤销 ABC 的操作,同步锁说的是,如果当前线程执行 B 操作导致 R 记录被锁,那么其他线程执行 B 时会等待直到超时或得到锁才能进行读写 R ,如果没有锁,那么可能同时两个线程修改 R ,导致更新丢失。
    li24361
        5
    li24361  
    OP
       2015-11-04 19:15:30 +08:00
    @SmiteChow 那请教一下,如果用 spring +mybatis ,还是要使用 jdbc 的 for update 方式来锁定吗?
    SmiteChow
        6
    SmiteChow  
       2015-11-04 23:55:15 +08:00
    @li24361 虽然我没使用过你说的两个框架,但框架仅仅是框架,你可以看看有没有封装过事务和同步锁,有的话就直接用, 没有自己写也没什么。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2904 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 07:58 · PVG 15:58 · LAX 23:58 · JFK 02:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.