JDBC i Oracle conn.commit i conn.setAutocommit nie działają poprawnie

Zrobiłem klasę DBManager, jak pokazano poniżej

public class DBManager {


      public static String DRIVER = "oracle.jdbc.driver.OracleDriver";
      public static String URL = "jdbc:oracle:thin:@//localhost:1521/DB";
      public static String USERNAME = "afsweb";
      public static String PASSWORD = "afsweb";
      public static String DOCDBUSERNAME = "docdb";
      public static String DOCDBPASSWORD = "docdb";
      public static int PORT = 1521;

    //static Logger log = Logger.getLogger(ExcelDBManager.class.getName());
    public static Connection getConnection(String url ,String username, String password){
    try {
        Class.forName(DRIVER);
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    Connection con = null;
    try {
        con = DriverManager.getConnection(url,username,password);
        con.setAutoCommit(false);
        } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    }
    return con;
}

I mam metodę obcinania wierszy w tabeli

public static void truncate() throws SQLException{
        conn = DBManager.getConnection(DBManager.URL, DBManager.USERNAME, DBManager.PASSWORD);
        System.out.println(conn.getAutoCommit()  +"");
        Statement pstmnt = null;
        ResultSet rs = null;
        try{    
            pstmnt = conn.createStatement();
            pstmnt.executeQuery("truncate table bd_vehicles_temp_1");
            System.out.println("Query Executed");
        }
        catch(SQLException e){
            e.printStackTrace();
        }
        finally{
            try{
            if(rs !=null){
                rs.close();
            }
            if(pstmnt != null){
                pstmnt.close();
            }
            if(conn != null){
                conn.close();
            }
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
    }

Teraz nie napisałem conn.commit wewnątrz mojej metody truncate (). Również mam setAutocommit na false. Nawet wtedy zmiany znajdują odzwierciedlenie w bazie danych.

Po wykonaniu powyższej metody otrzymuję dane wyjściowe jako

false
Query Executed

Co oznacza, że ​​tryb automatycznego zatwierdzania połączeń jest fałszywy. Nadal zmiany dokonane metodą obcięcia są odzwierciedlane w bazie danych. Co może być możliwym powodem? Używam Oracle Database.

Z góry dziękuję !

questionAnswers(4)

yourAnswerToTheQuestion