我的目的是在程序退出中途嘗試SQL回滾而不完成。在我的程序中有以下連接。但是,即使在中途退出時沒有設置任何con.commit,數據仍會寫入數據庫。我做了一個調試模式,它陷入異常並執行con.rollback();但其中沒有回滾。這讓我很困惑。SQL JDBC JDBC在自動提交關閉時提交
con = DriverManager.getConnection(value);
con.setAutoCommit(false);
try{
pstmt = con.prepareStatement("CREATE TABLE IF NOT EXISTS Test (Number varchar(255))")
pstmt.execute();
pstmt = con.prepareStatement("INSERT INTO `Test` (Number) values (?)");
pstmt.setString(1,"1");
pstmt.executeUpdate();
}catch(Exception){
con.rollback();
}
對不起,我不明白嗎?你能舉一些例子嗎? – BeyondProgrammer
您的代碼似乎不完整。 insert語句永遠不會運行,它會引發語法錯誤。這意味着將沒有工作完成。數據如何寫入。這似乎是一個更大的功能/程序的片段。你能告訴我們更多的代碼嗎? – Namphibian
好吧,我剛纔給出的代碼是一個草稿,如果你想要一個完整的聲明,我剛剛添加。 – BeyondProgrammer