Un dels clàssics problemes quan incertes registres en una taula son els camps autoincrementables. Un cop els has incertat no saps mai el valor que a posat la BBDD a aquests registre. Tothom te molts problemes amb aquests temes i mai no aconsegueixes una solució elegant al problema. Doncs no ús ho perdeu, resulta que te fàcil solució:
Quan incertes d’es d’un ResultSet:
ResultSet resultset=st.executeQuery(“SELECT * FROM extranet.clients WHERE 1=2”);
resultset.moveToInsertRow();
resultset.updateString(“namePrefix”, rs.getNamePrefix() );
resultset.updateString(“givenName”, rs.getGivenName() );
resultset.updateString(“surname”, rs.getSurname() );
resultset.insertRow();
resultset.last(); /* El driver sempre incerta al final del ResultSet */
System.out.println(“Codi client: ”+resultset.getString(“id”));
Quan executes directament des del Statement:
“INSERT INTO taula (dataField) ” + “values (‘valor’)”,
Statement.RETURN_GENERATED_KEYS);
int autoIncKeyFromApi = -1;
rs = stmt.getGeneratedKeys();
if (rs.next()) autoIncKeyFromApi = rs.getInt(1);
Ara ja no tenim excusa…