2017-05-03 11 views
0

이 프로그램은 데이터베이스에서 데이터를 검색하고 있습니다. 내 프로그램에 문자열 변수를 사용해야한다. 하지만 ResultSet String 값을 문자열 변수에 넣었을 때 programm을 실행 한 후 'java.sql.SQLException: Before start of result set'을 표시하면됩니다. 내가 몇 가지 예에서 본ResultSet 및 String 변수 발행

try{     
// for database connection 

    Class.forName("com.mysql.jdbc.Driver");   
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/email_auto_responder","root",""); 

    Statement stmt=con.createStatement(); 
    ResultSet EmailAccounts = stmt.executeQuery("SELECT * FROM `clemailaccounts`"); 

String hostSubtract = EmailAccounts.getString(2).substring(EmailAccounts.getString(2).indexOf("@")); 
String partiallyCompanyName = hostSubtract.replace("@", ""); 
String companyName = partiallyCompanyName.replace(".com", "");   


    while(EmailAccounts.next()) { 

    System.out.println(EmailAccounts.getInt(1)+" "+EmailAccounts.getString(2)+" "+ companyName +" "+EmailAccounts.getString(4)); 
       + "\n"); 
     } 
} 
    catch(Exception e) 
{ System.out.println(e);} 

들이 문자열 변수에 결과 집합 값을 사용

여기 내 코드입니다. 그러나 나는이 오류가 왜 나는지 확신하지 못한다. Eclips에는 또 다른 오류가 나타나지 않습니다. 하지만 코드를 실행 한 후에이 예외가 발생했습니다. 어떤 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

+4

글쎄,'next()'를 호출하기 전에'getString()'*을 호출 할 것입니다. 너는 그렇게 할 수 없다. (나는 또한 당신이 일반적인 Java 명명 규칙을 따르기를 강력하게 제안하고 코드를 좀 더 읽기 쉽도록 포맷한다.) –

+0

도움을 주셔서 감사합니다. –

답변

1

커서가 첫 번째 행 앞에 있고 데이터를 요청하고 있습니다. 커서를 첫 번째 행으로 이동해야합니다. 먼저 EmailAccounts.next()를 수행하고 문자열을 얻습니다.

+0

고마워요. 알았어. –