2
'ID'라는 열이 포함 된 테이블이 있습니다.이 열은 자동으로 증가하고 기본 키로 설정된 INT입니다.자바 : MySQL 쿼리. 생성 된 ID 가져 오기
쿼리를 실행 한 후 생성 된 ID의 값을 가져와야합니다. 나는 다음과 같습니다
String sql = "INSERT...";
Statement statement = sqlConnection.createStatement();
int result = statement.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);
this.id = statement.getGeneratedKeys().getInt("id");
I 얻을 코드의 마지막 줄에 다음과 같은 예외 :
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 : 내가 statement.getGeneratedKeys().getInt(0);
로 변경하는 경우
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)
나는 다음을 얻을 다른 방법을 시도해보고 이것을 시도했습니다. 인터넷에서 찾은 예제 코드를 살펴 보았습니다. 나는 내가 뭘 잘못하고 있는지 알 수 없다.
참고 : 쿼리는 내가 포함 된 두 가지 솔루션 모두에서 실행됩니다. 그래서 연결이 잘 작동합니다. 그것은 작동하지 않는 ID의 가치를 되찾고 있습니다.
도움 주셔서 감사합니다.
그래도 작동하지 않습니다. 나에게 0을 사용하는 것과 같은 예외가 생겼다. – Joel
아, 두 번째 문제가있다. 이것을 체크해라. http://stackoverflow.com/questions/2120255/java-resultset-exception-before-start-of-result-set – Michael
은'.getInt (1)'을 호출하기 전에 결과 집합에서'.next()'를 호출해야했습니다. 굉장해. 고마워요 마이클 – Joel