ResultSet和String变量问题

时间:2017-05-03 10:32:16

标签: java database sqlexception

本程序正在从数据库中检索数据。我需要为我的程序使用字符串变量。但是当我在运行程序后将ResultSet字符串值放入字符串变量并显示'java.sql.SQLException: Before start of result set'时。

这是我的代码:

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);} 

我在一些例子中看到他们在String变量中使用了resultset值。但我不知道为什么我会收到这个错误。在Eclips中还有另一件事,它也没有显示任何错误。但运行代码后,我得到了这个例外。任何帮助将不胜感激。在此先感谢

1 个答案:

答案 0 :(得分:1)

您的光标位于第一行之前,然后您正在请求数据。您需要将光标移动到第一行。首先执行EmailAccounts.next()然后获取String