Từ tài liệu Oracle JDBC:
Khi một kết nối được tạo, kết nối đó ở chế độ tự động cam kết. Điều này có nghĩa là mỗi câu lệnh SQL riêng lẻ được coi như một giao dịch và được cam kết tự động ngay sau khi nó được thực thi. (Nói chính xác hơn, mặc định dành cho câu lệnh SQL được cam kết khi nó hoàn thành, không phải khi nó được thực thi. Một câu lệnh được hoàn thành khi tất cả các bộ kết quả và số lượng cập nhật của nó đã được truy xuất . Tuy nhiên, trong hầu hết các trường hợp, một câu lệnh được hoàn thành và do đó được cam kết ngay sau khi nó được thực thi.)
Điều khác là - bạn đã bỏ qua chi tiết tạo kết nối, vì vậy tôi chỉ đoán - nếu bạn đang sử dụng một số khuôn khổ hoặc có được kết nối từ nguồn dữ liệu hoặc nhóm kết nối, thì autocommit
có thể bị off
bởi các khuôn khổ / nhóm / nguồn dữ liệu đó - giải pháp là không bao giờ tin tưởng vào các cài đặt mặc định;-)