2015-11-12 2 views
0
Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname","user","pass"); 
Statement myStmt1 = myConn.createStatement(); 
System.out.println("connected"); 

for(int i=1; i<1375462;i++){ 
    ResultSet myRs1 = myStmt1.executeQuery("SELECT Name FROM table WHERE id ="+i); 

    String Name = myRs1.getString("Name"); 
    System.out.print(i); 
    System.out.println("Name:"+Name); 
} 

Я использую JDBC Java для запроса имени из базы данных, но на этот раз у него появилась ошибка, и я не знаю почему. Раньше я использовал Java JDBC. Я могу подключиться к базе данных, но запрос кажется неработоспособным? Id столбец целых 10 цифр.Ошибка JDBC Java JDBC, но почему?

"run: connected java.sql.SQLException: Before start of result set 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:959) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:862) 
    at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:790) 
    at com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5244) 
    at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5167) 
    at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5206)" 
+2

Invoke 'myRs1.next()', чтобы переместить курсор к первой строке перед чтением из нее –

+0

http://docs.oracle.com/javase/tutorial/jdbc/basics/retrieving.html –

ответ

4

Эта ошибка возникает при попытке получить доступ к чему-либо, не перемещая курсор. Попробуйте поставить myRs1.next(); перед тем, как получить строку.

+0

Это работает, Спасибо! –

0

Внутри для цикла, при получении ResultSet, вам нужно проверить myRs1.next(), как описано ниже.

for(int i=1; i<1375462;i++){ 
    ResultSet myRs1 = myStmt1.executeQuery("SELECT Name FROM table WHERE id ="+i); 
    while(myRs1.next()) { 
     String Name = myRs1.getString("Name"); 
     System.out.print(i); 
     System.out.println("Name:"+Name); 
    } 
}