Bon voilà,
j'ai fait un bout de code me permettant de créer des prepared staement et de faire l'insert en base et de récupérer les ID auto générés qui marche très bien avec mysl-connector-3.1.7
Mais là je me suis dit tiens prenons une version plus récente, la version mysql-connector.5.1.7.
Et bien ça ne marche plus.
L'insertion en base est bien faite mais la clef générée ne m'est pas renvoyée.
Donc voilà le schémat de ma base :
CREATE TABLE IF NOT EXISTS t_users ( id_user INT not null AUTO_INCREMENT , name VARCHAR(200) , firstname VARCHAR(200) , pseudo VARCHAR(200) , philosophie VARCHAR(30), temperament VARCHAR(30) , attitude VARCHAR(30) , PRIMARY KEY(id_user)) ENGINE=MyISAM;
Puis la requête :
INSERT INTO t_users(name , firstname , philosophie , temperament , attitude) VALUES(? , ? , ? , ? , ?)
Puis le code appelé :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public int executePstmtReturnKey(String... _toinsert)
{
String[] _toInsert = _toinsert;
try
{
PreparedStatement _pstmt = connection.prepareStatement(this.pstmt);
for(int i=0;i<_toInsert.length;i++)
{
_pstmt.setString(i+1 , _toInsert[i]);
}
_pstmt.execute();
ResultSet _result = _pstmt.getGeneratedKeys();
_result.next();
System.out.println("[BDDInterface.BDD : executePstmtReturnKey] "+ _result.toString() );
return _result.getInt(1);
}
catch (SQLException e)
{
System.out.println("[BDDInterface.BDD : executePstmtReturnKey] Unvalid request :"+ this.pstmt);
return -1;
}
} |
Partager