2016-12-12 9 views
0

私は初心者で、セレンのwebdriverを学ぼうとしています。 Eclipseでデータベースを接続しましたが、クエリを実行しようとするとエラーが表示されますEclipseでデータを取得できません

Oracle JDBC driver loaded ok. 
DB Connected Successfuly 
Exception in thread "main" java.sql.SQLException: Exhausted Resultset 
    at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270) 
    at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498) 
    at regressionTesting.TestDBConnect.main(TestDBConnect.java:34) 

以下は私の完全なコードです。

package regressionTesting; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

public class TestDBConnect { 

    public static void main(String[] args) throws Exception 

    { 
     //Accessing driver from the JAR file 
     Class.forName("oracle.jdbc.OracleDriver"); 
     System.out.println("Oracle JDBC driver loaded ok."); 

     Connection con=DriverManager.getConnection("jdbc:oracle:thin://:localhost:1602:mydb","root","root"); 
     System.out.println("DB Connected Successfuly"); 

     //jdbc:oracle:thin:@epwfst1db.dev.qintra.com:1602:epwfst1 --> this is the database 
     //epwf_app --> this is the username 
     //epwf_app_epwfst1 --> this is the passwd 

     //Below we create our query 
     PreparedStatement statement = con.prepareStatement("select * from epwf.payment where created_user_nm = '1600STOUTST7000'"); 

     //Below we create variable to execute the query 
     ResultSet result = statement.executeQuery(); 

     while(result.next()); 

     String amount = result.getString("payment_amt"); 
     String baid = result.getString("billing_application_accnt_id"); 
     String status = result.getString("status_cd"); 

     System.out.println("Amount: " + amount); 
     System.out.println("BAID: " + baid); 
     System.out.println("Status: " + status); 
    } 

} 

上記のクエリについては、列は、私が結果で望んでいた以上のものです。あなたはそれが原因でエラーが起こっていると思いますか?

ご協力いただければ幸いです。私が言及したように、私はこれを初めて知っているので、できるだけ詳細にしてください。再度、感謝します!!

答えて

0

ではなく、あなたが

while (result.next() { 


} 
を使用する必要があります

while(result.next()); 

(詳細については下記をご確認ください)あなたのコードで間違った構文を持っているよう

あなたwhileループが任意のコードが含まれていないに見えます

結果セットを処理した後に列の値にアクセスしようとするため、例外が発生します。

例外がスローされます例:

while (rs.next()) { 
    String s = rs.getString(0); 
} 
String s = rs.getString(0); //this will throw Exhausted resultset 

;whileまたはifの終了は、コードの最初の行の後の状態を終了し

例:

if (true); 
    System.out.println("this will be printed out"); 

したい場合少なくとも2つの命令を呼び出す括弧内に入れてください{}

+0

ありがとう!出来た。 –

関連する問題