私は楽観的で悲観的なロックが何であるかを知っていますが、Javaコードを書くときはどうやってそれをしますか? OracleとJavaを使用しているとします.JDBCでJDBCを使用する方法はありますか?どうすればこのことを設定できますか?すべてのポインタが評価されます。Javaコードから楽観的および悲観的なロックをコード化する方法
6
A
答えて
3
私は、JavaでOracleを使用していると仮定しますが、これを行うのに役立つJDBCのメソッドはありますか?
This Oracle paperには、これを行う方法に関するヒントがあります。
特定のJDBCメソッドはありません。むしろ、SQL問合せ/更新を設計する方法とトランザクション境界を置く場所によって、オプティミスティック・ロックを実現します。
11
あなたはこの方法であなたのDBテーブルに楽観的ロックを実装することができます(これは休止状態にどのように行われるか楽観的ロックである):
- は、あなたのテーブルに整数「バージョン」の列を追加します。
- 対応する行の更新ごとにこの列の値を増やします。
- ロックを取得するには、行の「バージョン」値を読み取るだけです。
- 更新ステートメント のwhere句に「version = acquired_version」条件を追加します。更新後に影響を受ける行の数を確認します。 影響を受けた行がない場合、誰かが既にエントリを変更しています。あなたの更新はもちろん
UPDATE mytable SET name = 'Andy', version = 3 WHERE id = 1 and version = 2
のようになります
、このメカニズムは、すべての当事者が特別な処理を必要としないDBMSが提供するロックに反して、それに従っている場合にのみ機能します。
これが役に立ちます。
関連する問題
- 1. スナップショット、悲観的、および楽観的トランザクションの相違
- 2. VB6の悲観的なロックの検出
- 3. オークション/銀行のようなアプリケーション(Rails/MySQL)の楽観的または悲観的なロック
- 4. JPA楽観的ロック - 列
- 5. Hibernateは楽観的ロック
- 6. Hibernate 4悲観的ロックの例手順
- 7. 楽観的なロック失敗iOS swift
- 8. どの並行性制御がより効率的か悲観的または楽観的並行性制御
- 9. コマンドと悲観的なロックのNhibernate設定クエリのタイムアウト時間
- 10. grails 2.4.2楽観的ロックが動作しないようです。
- 11. AWS S3に楽観的なロックがありますか?
- 12. はNHBから一つのフィールドを除外する汚い楽観的ロック
- 13. ダイレクトメッセージチャネルが、それでも楽観的ロックの例外を取得
- 14. Firebase + Reactでの楽観的なUIアップデート?
- 15. 良い例 - UXおよび美的観点からは
- 16. asp.netアプリケーションで「悲観的なロック」を実装するにはどうすればよいですか?
- 17. ListViewの項目を楽観的に更新する方法
- 18. 追加、削除、および含まれている楽観的な同期待ちはありますか?
- 19. Azure ARM API - 楽観的同時実行
- 20. rxjavaチェーンから観測不可能なコードを呼び出す方法
- 21. 観測およびサブスクリプション
- 22. Entity FrameworkとORACLEによる楽観的同時実行
- 23. redux-observableオフライン/楽観的な振る舞い
- 24. 「外部APIで楽観的」オプションは何をしますか?
- 25. Redisと楽観的同時実行制御:可能ですか?
- 26. 削除突然変異のための楽観的な更新
- 27. 悲観的ロックは、私はデータベースの助けを借りて、シリアル番号を取得したい春のデータJPA
- 28. Graphql Apollo楽観的なUIパターン - 実際の結果を処理しますか?
- 29. 客観的なメモリ比較
- 30. hibernateの楽観的/ペシミスティックなロックを伴う同時実行性の良い戦略/解決策
JavaロックとJDBCは、あなたが探している方法では関係ありません。あなたが解決しようとしている問題は何ですか? Javaロックは、「同期」キーワードを使用して取得できる再入可能ロックです。 これで、正確に何を探していますか? – Pavan
データベースのロックを探しています – user2434