gpt4 book ai didi

java - 有没有办法在多个客户端和服务器提交后显式提交和回滚事务

转载 作者:行者123 更新时间:2023-12-01 15:49:36 25 4
gpt4 key购买 nike

环境:该应用程序使用 Spring Framework 2.5.6.SEC01 和 iBatis 2.3.4.726。这就是MVC设计。

场景如下:

  1. 从客户端输入/更新数据

  2. 按“更新”按钮提交

  3. 处理数据并执行DML(插入、更新、删除)

  4. 返回结果给客户端并显示数据

  5. 但是,在加载页面后,我需要通过Javascript调用API(我无法控制API,只需要传递所需的参数并检查结果是否成功或错误)

  6. 如果 API 返回 SUCCESS,则无需执行任何操作。但它返回 ERROR,我给出警报消息以通知用户。

    我有 View (客户端)、服务和数据访问层。当客户端进行提交(场景#2)时,它进入服务处理数据并自动启动事务(场景#3)。退出服务并返回客户端时自动执行提交以显示数据(场景#4)。

问题:如何暂停事务而不执行提交,然后返回客户端通过Javascript调用API当API返回SUCCESS时,通过Ajax(或其他方式)执行提交,或者回滚它。

任何关于正确方向的指导都值得赞赏。

最佳答案

如果我理解正确的话,您想要启动一个数据库事务,插入数据(不提交),保持连接和事务打开,返回客户端,并根据一些 javascript 结果,进行提交。

这感觉像是一个奇怪的设计,客户端实际上可以保持连接打开,使您的应用程序极易受到 (D)DOS 攻击或一般客户端问题。

我会非常努力地对其进行如下改造:

  1. 提交后,调用确认提交/保存操作所需的 JavaScript
  2. 当 JavaScript 成功时,提交到您自己的服务器
  3. 在 DAO 中进行正常的连接/事务处理,而不是向客户端公开事务。

这更快、更健壮,而且代码可能更少。

关于java - 有没有办法在多个客户端和服务器提交后显式提交和回滚事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com