「JDBCによる悲観ロックの落とし穴」の版間の差分
提供: tknotebook
(ページの作成:「Category:コンピュータCategory:Java メインページ>コンピュータの部屋#Java>Java Tips JDBCを使って悲観ロックでレ...」) |
|||
14行: | 14行: | ||
s.executeUpdate(String.format("update account set balance=%d where name='A'", balanceA - 100)); | s.executeUpdate(String.format("update account set balance=%d where name='A'", balanceA - 100)); | ||
logger.debug("update A"); | logger.debug("update A"); | ||
− | + | ||
conn.commit(); | conn.commit(); |
2016年7月30日 (土) 03:04時点における版
メインページ>コンピュータの部屋#Java>Java Tips
JDBCを使って悲観ロックでレコードを更新するとき、たまにこんなコードを見かけます。
rsA = s.executeQuery("select name, balance from account where name='A' for update"); if (rsA.next()) { balanceA = rsA.getInt("balance"); logger.debug("balanceA = " + balanceA); } else { throw new Exception("行がありません"); } s.executeUpdate(String.format("update account set balance=%d where name='A'", balanceA - 100)); logger.debug("update A"); conn.commit();