请问一下看到别人的代码,在有事务的情况下在 finally 记录操作(记录是指业务数据的变更历史) 是不是多此一举啊,还是有其它考虑? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
dengji85

请问一下看到别人的代码,在有事务的情况下在 finally 记录操作(记录是指业务数据的变更历史) 是不是多此一举啊,还是有其它考虑?

  •  1
     
  •   dengji85 2020 年 7 月 24 日 2116 次点击
    这是一个创建于 2100 天前的主题,其中的信息可能已经有所发展或是发生改变。
    //事务的情况下 public void update() { try{ //数据库操作 }catch(e){ }finall{ //数据库存储数据变更记录 } } 
    11 条回复    2020-07-25 16:37:11 +08:00
    Varobjs
        1
    Varobjs  
       2020 年 7 月 24 日
    瞎写,finally 应该只做关闭连接、清除资源等工作
    npe
        2
    npe  
       2020 年 7 月 24 日
    transaction 失败了怎么办
    zsdroid
        3
    zsdroid  
       2020 年 7 月 24 日
    业务就是要操作记录啊。
    table cellpadding="0" cellspacing="0" border="0" width="100%"> dengji85
        4
    dengji85  
    OP
       2020 年 7 月 24 日
    @npe 这是业务的变更历史,不是操作记录,事务失败业务数据没有变更,自然没有变更记录
    hun2008hun
        5
    hun2008hun  
       2020 年 7 月 24 日
    catch 怎么操作的,不 throw 的话事务没效果呀
    zarte
        6
    zarte  
       2020 年 7 月 24 日
    操作记录而已,某某人做了啥,一般来说都是成功的。用来追究责任。
    dengji85
        7
    dengji85  
    OP
       2020 年 7 月 24 日
    @hun2008hun 有抛 runtimeexception
    xizismile
        8
    xizismile  
       2020 年 7 月 24 日 via Android
    一般重要数据都要有变更记录的,记录了谁什么时间点操作了数据,便于审计和追责

    这种一般用 aop 来实现更好一些
    dengji85
        9
    dengji85  
    OP
       2020 年 7 月 25 日
    @xizismile 我是想不通已有事务控制了,数据更改成功操作记录一定会保存下来,如果抛异常事务回滚,也没必要 finally 去处理
    xizismile
        10
    xizismile  
       2020 年 7 月 25 日 via Android
    @dengji85 数据库中的数据,你只能看到一个稳定的状态。现在需要的是看到这条数据连续变化的状态,知道是谁改了这条数据,便于追责。和这条数据用不用事务没有半毛钱关系,这个你能明白吗
    abersheeran
        11
    abersheeran  
       2020 年 7 月 25 日
    我觉得有点蠢。记录代码应该放 try 里啊。try 里有事务,一旦报错直接回滚,就没必要记录了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     926 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 47ms UTC 22:34 PVG 06:34 LAX 15:34 JFK 18:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86