TRUNCATE 暗黙的にコミットするデータ定義言語 (DDL) コマンドです。 DELETE を使用した場合、何もコミットされませんでした
// Deletes ALL Rows; No WHERE Clause
pstmnt.executeQuery("DELETE FROM bd_vehicles_temp_");
理由 TRUNCATE Rollback Tablespace にコピーせずにテーブル データを直接削除する DDL ステートメントです。 .それが TRUNCATE の理由です の方が高速ですが、ロールバックできません。
編集 :(私の INSERT もコミットしているのはなぜですか?)
接続を閉じようとしているからです Connection#rollback を呼び出さずに() .
接続の場合 明示的な commit なしで閉じられる またはロールバック; JDBC はここで特に何も義務付けていないため、動作はデータベース ベンダーに依存します。 Oracle の場合、暗黙の commit
そう、ただ rollback() 接続を閉じる前に変更 ついに ブロック
pstmnt = conn.createStatement();
pstmnt.executeQuery("DELETE FROM bd_vehicles_temp_1");
System.out.println("Query Executed");
conn.rollback();
System.out.println("Changes rolled back");