更新時(shí)間:2022-10-13 10:02:21 來源:動力節(jié)點(diǎn) 瀏覽2235次
如何在JDBC中開啟事務(wù)?動力節(jié)點(diǎn)小編來告訴大家。事務(wù)是針對數(shù)據(jù)庫執(zhí)行的工作單元。事務(wù)是按邏輯順序完成的工作單元或序列,無論是由用戶以手動方式還是由某種數(shù)據(jù)庫程序自動完成。
事務(wù)是對數(shù)據(jù)庫的一項(xiàng)或多項(xiàng)更改的傳播。例如,如果您正在創(chuàng)建記錄或更新記錄或從表中刪除記錄,那么您正在對該表執(zhí)行事務(wù)。控制這些事務(wù)以確保數(shù)據(jù)完整性和處理數(shù)據(jù)庫錯(cuò)誤非常重要。
執(zhí)行所需操作后,您可以使用 commit 命令結(jié)束/保存事務(wù)。在 JDBC 應(yīng)用程序中,您可以使用連接接口的commit()方法來執(zhí)行此操作。
每當(dāng)事務(wù)中出現(xiàn)問題時(shí),您都可以使用回滾恢復(fù)數(shù)據(jù)庫中所做的更改。
一般來說,在 JDBC 中,在您建立連接后,默認(rèn)情況下,您的連接將處于自動提交模式,即您使用此連接執(zhí)行的每條語句都會自動保存,這意味著數(shù)據(jù)庫管理自己的事務(wù)和每個(gè)單獨(dú)的 SQL 語句被視為交易。
您可以通過關(guān)閉自動提交模式來啟用手動事務(wù)支持。為此,您需要將布爾值 false 傳遞給Connection接口的setAutoCommit()方法。
conn.setAutoCommit(false);
以下程序使用批處理將數(shù)據(jù)插入到該表中。這里我們將自動提交設(shè)置為false,將所需的語句添加到批處理中,執(zhí)行批處理然后自己提交數(shù)據(jù)庫。
onth_Of_Dispatch , Price, Location) VALUES "
+ "('KeyBoard', 'Amith', 'January', 1000, 'hyderabad')";
String insert2 = "INSERT INTO Dispatches( Product_Name , Name_Of_Customer , "
+ "Month_Of_Dispatch , Price, Location) VALUES "
+ "('Earphones', 'SUMITH', 'March', 500, 'Vishakhapatnam')";
String insert3 = "INSERT INTO Dispatches( Product_Name , Name_Of_Customer , "
+ "Month_Of_Dispatch , Price, Location) VALUES "
+ "('Mouse', 'Sudha', 'September', 200, 'Vijayawada')";
//Adding the statements to the batch
stmt.addBatch(insert1);
stmt.addBatch(insert2);
stmt.addBatch(insert3);
//Executing the batch
stmt.executeBatch();
//Saving the changes
con.commit();
System.out.println("Records inserted......");
}
}
輸出
Connection established......
Records inserted......

初級 202925

初級 203221

初級 202629

初級 203743