2012-04-14 1 views
1

내 Java 응용 프로그램에서 쿼리에 문제가 있습니다. 이름을 기반으로 사용자 점수를 얻는 간단한 쿼리이지만 끊임없이 오류가 발생하며 문제의 출처를 파악할 수 없습니다.자바 SQL : 결과 집합 이전의 오류

  String driver = "com.mysql.jdbc.Driver";  
     Class.forName(driver).newInstance(); 

     con = DriverManager.getConnection(url, USERNAME, PASSWORD); 
     st = con.createStatement(); 


     PreparedStatement preStatement = con.prepareStatement("select score from playerscore where name=?"); 
     preStatement.setString(1, "tomcat"); 

     ResultSet resultSet = preStatement.executeQuery(); 
     score    = resultSet.getInt(1); 

누군가가 시선을 돌리고 올바른 방향으로 나를 가리킬 수 있습니까?

편집 : 스택 추적의 이미지

http://imageshack.us/photo/my-images/854/stackr.jpg/

+0

스택 트레이스를 게시 할 수 있습니까? 도움이 될 것입니다. –

+0

stacktrace의 이미지에 대한 링크가 추가되었습니다. – MindDrip

+0

부채꼴 : 작성한 곳에 .newInstance()를 쓰지 마십시오. Class.forName (...)으로 충분하다. 그러면 드라이버의 불필요한 인스턴스가 생성 될 뿐이다. –

답변

4

처음에는 ResultSet는 첫 번째 행하기 전에 위치한다. 따라서 값을 검색하기 전에 먼저 resultSet.next()을 호출하여 첫 ​​번째 행으로 이동해야합니다.

반환 된 boolean을 확인하여 첫 번째 행이 실제로 있는지 확인할 수 있습니다. resultSet.next()입니다.

+0

솔루션! 고맙습니다. – MindDrip