初學者jdbc
public static void test() {
Connection conn = null;
// 定義一個回滾點
Savepoint sp = null;
Statement stmt = null;
try {
// 獲取一個數據庫連接
conn = JdbcTxTest.getConnect();
// 設置不自動提交,相當于開啟了事務
conn.setAutoCommit(false);// 設置為非自動提交
// 設置JDBC事務的級別
conn.setTransactionIsolation(conn.TRANSACTION_SERIALIZABLE);// 設置事務級別
// 創建一個用于執行靜態 SQL 語句并返回它所生成結果的對象
stmt = conn.createStatement();
// 執行連個SQL語句,在同一個事務中
stmt
.executeUpdate("insert into t_test(id,name) values(SEQ_AIRPORT_DYNAMICINFO.NEXTVAL,'aaa')");
sp = conn.setSavepoint();
// 定義一個回滾到(保存點)savepoint1,在事務失敗的時候,可以回滾到定義的回滾點
stmt.executeUpdate("update t_test set name='bbb' where name='aaa'");
// 提交事務
conn.commit();
} catch (SQLException e) {
try {
// 當事務失敗時候,回滾到(保存點)savepoint1
conn.rollback(sp);
} catch (SQLException e1) {
throw new RuntimeException("回滾事務時發生異常");
}
throw new RuntimeException("執行事務時發生異常");
} finally {
JdbcTxTest.closeConnect(conn, stmt, null);
}
}
本文由用戶 ls889 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!