Re: Getting a Mysql auto increment value back into my Java client GUI?
- From: Lew <lew@xxxxxxxxxxxxx>
- Date: Wed, 19 Mar 2008 19:55:53 -0400
BoBi wrote:
I would like to get the value assigned to sid by Mysql back into my
client Java application
preferably with the one sql statement I'm already using to insert.
Only if really necessary
with a second sql statement. What is the best way to programm this?
David Harper wrote:
The best solution is to use Connection.prepareStatement(String sql, int autoGeneratedKeys) to create a prepared statement:
String sqlString = "INSERT INTO country(countryCode,countryName)
VALUES(?,?)";
PreparedStatement pstmt = conn.prepareStatement(sqlString,
Statement.RETURN_GENERATED_KEYS);
assuming that your table has columns named countryCode and countryName to store the country code and name respectively.
Then insert a row using code such as
pstmt.setString(1, country.getCode());
pstmt.setString(2, country.getName());
int rc = pstmt.executeUpdate();
// rc is the number of rows actually inserted
and retrieve the auto_increment value generated by the server like this:
ResultSet rs = pstmt.getGeneratedKeys();
If only you were using PostgreSQL, you could use their extension to the INSERT command:
[ RETURNING * | output_expression [ AS output_name ] [, ...] ]
The optional RETURNING clause causes INSERT to compute and return value(s) based on each row actually inserted. This is primarily useful for obtaining values that were supplied by defaults, such as a serial sequence number. However, any expression using the table's columns is allowed. The syntax of the RETURNING list is identical to that of the output list of SELECT.<http://www.postgresql.org/docs/8.2/interactive/sql-insert.html>
--
Lew
.
- References:
- Prev by Date: Re: Getting a Mysql auto increment value back into my Java client GUI?
- Next by Date: Re: MySql installation.
- Previous by thread: Re: Getting a Mysql auto increment value back into my Java client GUI?
- Next by thread: Re: Getting a Mysql auto increment value back into my Java client GUI?
- Index(es):