トランザクションの元に戻す/やり直しのないアルゴリズムを実装しています。SQL テーブルを使用するのではなく、Java の組み込み機能を使用する予定です。しかし、それらを最大限に活用する方法についてはわかりません。したがって、私の実装の正しい方向へのヘルプやポインターは高く評価されます。私のタスクは以下の通りです。
新しいトランザクションを取得するたびに、それをトランザクション テーブルに挿入する必要があります。以下のような取引があったとしましょう。
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 update 操作をシミュレートできます。最初に私の transactionitem 配列リストに次の項目があるとします。
X Y
ここで、別の Z を X に追加します (XZ と言います)。arraylist.size を上限として for ループを使用して、その特定のインスタンスにトラバースしています。特定のアイテムを見つけたら、既存の値をローカル文字列にコピーしています。その後、挿入する必要がある目的の値を連結しています。それを行った後、実際の更新を行うために以下の行を使用しています。
transactionitem.set(i, transactionupdate);
助けてくれてありがとう。さらに情報が必要な場合はお知らせください。