我正在实现事务的 No-undo/redo 算法。我打算使用 Java 的内置功能而不是使用 SQL 表。但我不确定如何充分利用它们。因此,我们将非常感谢任何为我的实施提供正确方向的帮助或指示。我的任务如下。
每当我得到一个新事务时,我都必须将它插入到事务表中。假设我得到如下交易。
b1;
所以,我的交易表如下。
TransactionID Transaction_Status Transaction_Items
1 Active NIL
现在,当我收到要写入具有相同事务 ID 的项目时,我必须单独更新 transaction_items 列。
我收到的交易项目如下。
W1(X,2,0);
TransactionID Transaction_Status Transaction_Items
1 Active X
在我遇到提交事务后,
C1;
我的交易表应该更新如下。
TransactionID Transaction_Status Transaction_Items
1 Commit X
我可以使用 SQL 表实现上述结构并轻松更新列。但我计划使用 java 本身提供的丰富实现。我决定使用链表来实现。但我无法在链表中设置键。基本上,我正在尝试实现一个链表数组。我无法清楚地理解这个概念。任何在正确方向上实施上述内容的帮助将不胜感激。
如果需要更多信息,请告诉我。
我正在使用 arraylist 来实现我讨论过的上述结构。set 语句覆盖了我之前设置的值。通过这种方式,我可以模拟db更新操作。假设最初我的 transactionitem arraylist 有以下项目。
X Y
现在我想在 X 上添加另一个 Z(比如 XZ)。我正在使用以 arraylist.size 作为上限的 for 循环遍历该特定实例。找到我的特定项目后,我会将现有值复制到本地字符串。之后,我将连接需要插入的所需值。完成后,我使用下面的行来进行实际更新。
transactionitem.set(i, transactionupdate);
感谢大家的帮助。如果您需要更多信息,请与我们联系。