Ho fatto una classe DBManager come illustrato di seguitoJDBC e Oracle conn.commit e conn.setAutocommit non funziona correttamente
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;
}
e non ho metodo troncare le righe nella tabella
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();
}
}
}
Ora ho non scritto conn.commit all'interno del mio metodo truncate(). Inoltre ho impostato suAutocommit su false. Anche allora le modifiche si riflettono nel database.
Sulla L'esecuzione del metodo di cui sopra ottengo uscita come
false
Query Executed
Il che significa che il mio modo di connessioni autocommit è falso. Ancora le modifiche apportate dal metodo truncate si riflettono nel database. Quale potrebbe essere la possibile ragione ?? Sto usando Oracle Database.
Grazie in anticipo!
Lo stesso è il risultato per comando di inserimento anche –
@AbhishekSingh Ho aggiunto la mia risposta come aggiornamento alla mia risposta. Per favore guarda. –