У меня есть таблица, которая содержит столбец с именем '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)
Я прошел через другие методы и попробовал то и это.Я посмотрел пример кода, найденного в Интернете.Я просто не вижу, что я делаю не так.
Примечание. Запрос выполняется в обоих решениях, которые я включил.Так что связь работает нормально.Он возвращает значение идентификатора, который не работает.
Спасибо за помощь.