2012-04-14 15 views
1

Javaアプリケーションのクエリに問題があります。名前に基づいてユーザーのスコアを取得するのは簡単なクエリですが、私は常にエラーが発生しており、問題の原因を特定できません。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); 

誰かが目を向けると正しい方向に向けることができますか?

EDIT:スタックトレースのイメージ

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

+0

スタックトレースを投稿できますか?それは役に立つだろう。 –

+0

stacktraceの画像へのリンクを追加しました – MindDrip

+0

サイドノート:書いた場所に.newInstance()を書き込まないでください。 Class.forName(...)で十分です。これにより、ドライバの不要なインスタンスが作成されます。 –

答えて

4

まず、ResultSetは最初の行の前が配置されています。したがって、値のいずれかを取得する前に、最初にresultSet.next()を呼び出して最初の行に移動する必要があります。

返されたbooleanresultSet.next()であることを確認することで、最初の行が実際に存在するかどうかを確認できます。

+0

解決策!ありがとうございました。 – MindDrip

関連する問題