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ę !