J'ai capturé cette exception java.sql.SQLException: !Statement.GeneratedKeysNotRequested! avec l'environnement suivant :

  • Mysql 5.0.32-Debian_7etch1-log
  • Connector/J 5.1

Lors de ce code Java :

PreparedStatement ps = sql.getConnectionSQL().prepareStatement("INSERT INTO ma_table SET " +
	"ma_date = NOW()," +
	"mon_id_utilisateur = ?");
ps.setInt(1, idUtilisateur);
ps.executeUpdate();
 
ResultSet rs = ps.getGeneratedKeys();   // java.sql.SQLException: !Statement.GeneratedKeysNotRequested! 

Il s'agit effectivement du dernier connecteur MySql (mysql-connector-java-5.1.7-bin.jar du 21/10/2008)

On ne rencontre pas cette erreur avec le précédent driver MySql pour java (mysql-connector-java-5.0.8-bin.jar du 04/10/2007)

Voyez la note de MySql à ce sujet : Fixed BUG#34185 - Statement.getGeneratedKeys() does not raise exception when statement was not created with Statement.RETURN_GENERATED_KEYS flags.