1. 学ぶ
  2. /
  3. コース
  4. /
  5. Java で PostgreSQL データベースにクエリを実行する

Connected

演習

本の返却

あなたは大都市公共図書館の管理システムを開発しているエンジニアです。先週、重大なバグが発見されました。本の返却処理中にシステムがクラッシュした際、貸出記録は「返却済み」に更新されたにもかかわらず、在庫上の本のステータスは「貸出中」のままになっていました。その結果、スタッフがデータベースを手動で修正するまで、その本は数週間にわたって利用できない状態が続きました。

本が返却される際、次の 3 つの操作はすべて成功するか、すべて失敗するかのどちらかでなければなりません。

  1. 貸出記録のステータスを「返却済み」に更新する。
  2. 本の在庫状況を「貸出中」から「利用可能」に変更する。
  3. 本が返却期限を過ぎている場合、延滞料金を記録する。

データの整合性を確保するために、適切なトランザクション制御を実装しましょう。

指示

100 XP
  • 26 行目で autoCommit を false に設定します。
  • 59 行目で、すべての操作が成功した場合にトランザクションをコミットします。
  • 66 行目で、いずれかの操作が失敗した場合にトランザクションをロールバックします。