user2848031
user2848031

Reputation: 225

How to get the auto-generated value from database when inserting new record?

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

Answers (2)

Sam
Sam

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

Adarsh
Adarsh

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

Related Questions