How to get the id of last inserted row using preparedstatement?
11,161
ps.executeUpdate(ps.RETURN_GENERATED_KEYS)
You invented that. It doesn't exist.
ps = con.prepareStatement(Insert_Credential);
That doesn't tell the PreparedStatement
to return generated keys either. You need this:
ps = con.prepareStatement(Insert_Credential, Statement.RETURN_GENERATED_KEYS);
Author by
Daniel Morgan
Updated on June 14, 2022Comments
-
Daniel Morgan almost 2 years
I am using the following code to insert a new row to database, I need to get the id of the last inserted row but when I run the code it shows the following message:
SEVERE: java.sql.SQLException: Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().
When I use the following code also it gives error although I choose executeUpdate(String sql)
ps.executeUpdate(ps.RETURN_GENERATED_KEYS); error >> no suitable method found for executeUpdate(int)
the table is as following:
credential int ID primary key, auto increment varchar(10) name
my code
String Insert_Credential = "Insert into credential values(" + "?,?)"; ps = con.prepareStatement(Insert_Credential); ps.setInt(1, 0); ps.setString(2, "username"); ps.executeUpdate(); ResultSet generatedKeys = ps.getGeneratedKeys(); if (generatedKeys.next()) { System.out.println("id is"+generatedKeys.getLong(1)); return generatedKeys.getInt(1); } else { throw new SQLException("Creating user failed, no generated key obtained."); }