Tôi đã thực hiện một lớp DBManager như hình dưới đâyJDBC và Oracle conn.commit và conn.setAutocommit không hoạt động đúng
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;
}
Và tôi có phương pháp cắt xén hàng trong bảng
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();
}
}
}
Bây giờ tôi có không viết conn.commit bên trong phương thức truncate() của tôi. Ngoài ra tôi có setAutocommit để sai. Thậm chí sau đó các thay đổi được phản ánh trong cơ sở dữ liệu.
On Thi công các phương pháp trên tôi nhận được đầu ra như
false
Query Executed
Có nghĩa là chế độ kết nối autocommit của tôi là sai. Các thay đổi được thực hiện bằng phương pháp cắt ngắn được phản ánh trong cơ sở dữ liệu. Điều gì có thể là lý do có thể? Tôi đang sử dụng cơ sở dữ liệu Oracle.
Cảm ơn bạn đã nâng cao!
Kết quả tương tự cho lệnh chèn cũng –
@AbhishekSingh Tôi đã thêm câu trả lời của mình làm cập nhật cho câu trả lời của mình. Xin vui lòng, có một cái nhìn. –