Java: запрос MySQL. Получить сгенерированный идентификатор - PullRequest
2 голосов
/ 13 июля 2010

У меня есть таблица, которая содержит столбец с именем 'id', представляющий собой INT, который автоматически увеличивается и устанавливается в качестве первичного ключа.

Мне нужно получить значение сгенерированного идентификатора после запросаэто запустить.У меня есть следующее:

String sql = "INSERT...";
Statement statement = sqlConnection.createStatement();
    int result = statement.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
    this.id = statement.getGeneratedKeys().getInt("id");

В последней строке кода я получаю следующее исключение:

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)

Если я изменяю его на statement.getGeneratedKeys().getInt(0);, я получаю следующее:

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)

Я прошел через другие методы и попробовал то и это.Я посмотрел пример кода, найденного в Интернете.Я просто не вижу, что я делаю не так.

Примечание. Запрос выполняется в обоих решениях, которые я включил.Так что связь работает нормально.Он возвращает значение идентификатора, который не работает.

Спасибо за помощь.

1 Ответ

1 голос
/ 13 июля 2010

Вы пытались использовать Statement.getGeneratedKeys (). GetInt (1)?Набор результатов основан на одном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...