J'ai une table qui contient une colonne appelée 'id' qui est un INT qui s'incrémente automatiquement et qui est la clé primaire.Java: requête MySQL. Get generated ID
Je dois obtenir la valeur de l'ID généré après l'exécution de la requête. Je donne les résultats suivants:
String sql = "INSERT...";
Statement statement = sqlConnection.createStatement();
int result = statement.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
this.id = statement.getGeneratedKeys().getInt("id");
-je obtenir l'exception suivante sur la dernière ligne de code:
javax.servlet.ServletException: java.sql.SQLException: Column 'id' not found.
com.joelj.music.rest.NewUser.doPost(NewUser.java:44)
javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
com.joelj.music.rest.filters.Prefilter.doFilter(Prefilter.java:44)
Si je change à statement.getGeneratedKeys().getInt(0);
j'obtiens ce qui suit:
javax.servlet.ServletException: java.sql.SQLException: Before start of result set
com.joelj.music.rest.NewUser.doPost(NewUser.java:44)
javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
com.joelj.music.rest.filters.Prefilter.doFilter(Prefilter.java:44)
I 'ai traversé les autres méthodes et j'ai essayé ceci et cela. J'ai regardé un exemple de code trouvé sur internet. Je ne peux pas voir ce que je fais mal.
Remarque: La requête est exécutée dans les deux solutions que j'ai incluses. Donc, la connexion fonctionne bien. Il récupère la valeur de l'ID qui ne fonctionne pas.
Merci pour l'aide.
Cela ne fonctionne pas. Me donne la même exception que d'utiliser un 0. – Joel
Ahh, vous avez un deuxième problème, vérifiez ceci: http://stackoverflow.com/questions/2120255/java-resultset-exception-before-start-of-result-set – Michael
a dû appeler '.next()' sur le jeu de résultats avant d'appeler '.getInt (1)'. Impressionnant. Merci Michael – Joel