Get it on Google Play

Java, Mysql i els camps AUTO INCREMENT

25-06-2007
 

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:

Statement st=cn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
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:

stmt.executeUpdate(
“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…

Leave a Reply

© Albert Coronado Calzada