Tôi có một câu hỏi như sau:Không thể tìm thấy một chìa khóa được tạo ra trong Java sử dụng getGeneratedKeys PreparedStatement của()
String SQL = "insert into table (id, name) values (sequence.nextval, ?)";
sau đó tôi thực hiện một PreparedStatement như thế này:
//initiate connection, statement etc
pStatement = connection.prepareStatement(SQL, Statement.RETURN_GENERATED_KEYS);
pStatement.setString(1,'blabla');
pStatement.executeUpdate();
ResultSet rs = pStatement.getGeneratedKeys();
while (rs.next()){
//debugging here to see what rs has
}
Khi thực hiện và gỡ lỗi tại rằng điểm gỡ lỗi, tôi thấy ResultSet của tôi chỉ có một khóa, một chuỗi - không giống như id mà tôi mong đợi. Khi kiểm tra cơ sở dữ liệu tất cả mọi thứ hoạt động tốt, id của được chèn vào và tất cả mọi thứ. Có điều gì đó về getGeneratedKeys(); gây nhầm lẫn cho tôi.
Tôi đang làm gì sai?
Cảm ơn trước
bạn không sử dụng 'chìa khóa tạo ra', bạn chỉ cần sử dụng một máy phát điện trong INSERT của bạn tuyên bố. 'getGeneratedKeys()' được sử dụng để trả về các khóa do DB tạo ra như một phần của INSERT (bởi một cột nhận dạng hoặc thông qua một trigger). –