步驟一:MsSQL設定:
設定INNODB資料表
Tip:MySQL 對不同的 Table 可以選擇不同的 Implementation 方式,像是最早的 ISAM (ISAM 將在 MySQL 5.0 以後被移除),後來的 MyISAM (因為要做 Transaction 時要預留多一點空間來進行處理,因此如果不須使用 Transaction 時,直接建 Table 就會採用 MyISAM 的格式)、把 Table 存在記憶體中提升效能的 HEAP Table,以及有支援 Transaction 的 INNODB 格式。
步驟二:如何在Java code執行Transcation
使用setAutoCommit方法將預設的auto commit的功能設為false, 當執行完所有的Sql Statements後,再呼叫commit方法完成所有動作。
conn.setAutoCommit(false); try{ PreparedStatement updateSales = _ conn.prepareStatement( "UPDATE PRODUCT_SALES SET NUMBER_OF_SALES=NUMBER _ _OF_SALES+1 WHERE PRODUCT_ID = ?"); updateSales.setString(1, productId); updateSales.executeUpdate(); PreparedStatement updateInventory = _ conn.prepareStatement( "UPDATE INVENTORY SET STOCK=STOCK-1 _ WHERE PRODUCT_ID = ?"); updateInventory.setString(1, productId); updateInventory.executeUpdate(); conn.commit(); } catch(SQLException se){ conn.rollback(); } conn.setAutoCommit(true);
Reference:
Using Database Transactions with JDBC
MySQL Version over 3.23.49 and JDBC Transactions (下)
沒有留言:
張貼留言
留個話吧:)