gpt4 book ai didi

java - 开发与 EJB 通信的 JTable

转载 作者:行者123 更新时间:2023-12-01 14:42:41 25 4
gpt4 key购买 nike

每一个。

我正在为基于 Swing 的客户端应用程序开发通用表组件。该表组件应该充当客户端的用户界面,并调用远程 EJB 接口(interface)来执行 CRUD 操作。

表的数据模型基本上是 jpa 实体的列表。我在实现查询功能方面没有问题,但是当出现持久操作时,我对“提交”策略有点困惑。

我想到以下方法:

  1. 尝试管理此表中已编辑/插入/删除的行列表,并在用户单击“保存”按钮时将列表发送到远程 EJB。 EJB 将在 CMT 中执行 CUD 操作。管理列表似乎具有挑战性,因为用户可能会执行导致 CUD 在服务器端失败的顺序事务操作。例如,在客户端,用户可以先插入一条与已存在的记录数据完全相同的记录,然后删除该已存在的记录。如果数据库表具有唯一约束,则保存操作将失败,因为 INSERT 将首先发生。所以在发送列表之前我必须防止类似的情况发生。

  2. 使表组件自动提交样式。最终用户执行的每个插入\更新\删除操作都将调用远程方法,以便持久保存数据。我认为如果客户端部署在网络延迟较大的地方,这种方法会很慢。此外,“我的表”组件必须提供额外的功能,例如在输入数据有效之前修复行,以防表组件操作具有非空/唯一等约束的数据库模式。

  3. 获取 UserTransaction 并在客户端管理事务。我读过一些相关内容,但我还没有真正弄清楚如何实现。

哪一种方法是正确的?谢谢您的建议。

最佳答案

对于不规则的更新,我倾向于使用 CellEditorListener 的选项 2,参见 here 。使用 SwingWorker 处理任何预期的延迟,如图 here 所示。 .

关于java - 开发与 EJB 通信的 JTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15785211/

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