अपनी प्राथमिक कुंजी को पुनः प्राप्त करने का सही तरीका getGeneratedKeys
. का उपयोग करना है सुविधा (जिसे Statement.RETURN_GENERATED_KEYS
का उपयोग करके सक्रिय किया जा सकता है) Statement.execute*
. में से किसी एक के साथ मान या Connection.prepareStatement
तरीके।
अधिकांश डेटाबेस में इसका उपयोग प्राथमिक कुंजी को सीधे प्राप्त करने के लिए किया जा सकता है। हालांकि Oracle के मामले में यह आपको ROWID
. प्राप्त करने की अनुमति देगा , यह ROWID
सम्मिलित पंक्ति के लिए तालिका को क्वेरी करने और प्राथमिक कुंजी प्राप्त करने के लिए उपयोग किया जा सकता है।
उदाहरण के लिए:
stmt.executeUpdate("INSERT INTO theTable(column1) VALUES ('a')",
Statement.RETURN_GENERATED_KEYS);
ResultSet keys = stmt.getGeneratedKeys();
int primaryKey = -1;
if (keys.next()) {
try (PreparedStatement keyStatement =
connection.prepareStatement("SELECT ID FROM theTable WHERE ROWID = ?")) {
keyStatement.setRowId(keys.getRowId(1));
try (ResultSet rs = keyStatement.executeQuery()) {
primaryKey = rs.getInt(1);
}
}
}