Reputation: 225
I have table with columns id, name, address, city, state, zip. Here id is auto generated when inserting new record like this: insert into table1(name,address,city,state,zip) values(?,?,?,?,?)
.
Here's my code:
preparedstatement.setString(1,name);
preparedstatement.setString(2,address);
preparedstatement.setString(3,city);
preparedstatement.setString(4,state);
preparedstatement.setString(5,zip);
preparedstatement.executeUpdate();
Now I want to know what is the id
value which was generated automatically. How can I do this?
Upvotes: 2
Views: 1372
Reputation: 7868
Create the prepared statement with the additional flag Statement.RETURN_GENERATED_KEYS
and make use of PreparedStatement.getGeneratedKeys()
:
String sql = "insert into table1(name,address,city,state,zip) values(?,?,?,?,?)";
PreparedStatement preparedstatement
= con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
//....
preparedstatement.setString(1,name);
preparedstatement.setString(2,address);
preparedstatement.setString(3,city);
preparedstatement.setString(4,state);
preparedstatement.setString(5,zip);
preparedstatement.executeUpdate();
ResultSet generatedKeys = preparedstatement.getGeneratedKeys();
//....
Related: PreparedStatement with Statement.RETURN_GENERATED_KEYS
Upvotes: 6
Reputation: 3641
String query = <your query>;
PreparedStatement preparedstatement=
con.prepareStatement(query ,Statement.RETURN_GENERATED_KEYS)
preparedstatement.setString(1,name);
preparedstatement.setString(2,address);
preparedstatement.setString(3,city);
preparedstatement.setString(4,state);
preparedstatement.setString(5,zip);
And after the execute update ,
ResultSet rs = preparedstatement.getGeneratedKeys();
Try this.
Upvotes: 3