2017-01-02 73 views
-1
package database; 

import java.sql.*; 


public class MysqlCon { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
try{ 
    Class.forName("com.mysql.jdbc.Driver"); 
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/neha","root","root"); 

    Statement stmt=con.createStatement(); 
    ResultSet rs=stmt.executeQuery("select * from student"); 
    while(rs.next()); 
    System.out.println(rs.getInt(1)+" "+rs.getString(2)); 
    con.close(); 
} 
catch(Exception e) 
{ 
    System.out.println(e); 
    } 
    } 

} 
+0

值java.sql.SQLException:結果年底成立 –

+1

之後,你有一個';'您光顧後,立即使你的代碼沒有做什麼你認爲它的確如此。這也是爲什麼一致的縮進和始終使用塊是明智的。投票結束爲一個錯字。 –

回答

0

認爲問題在於您通過執行while(rs.next());來迭代整個結果集。刪除分號遍歷所有記錄

-2

試試這個:

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

     Statement stmt=con.createStatement(); 
     ResultSet rs=stmt.executeQuery("select * from student"); 
     while(rs.next()){ 
     System.out.println(rs.getInt(1)+" "+rs.getString(2)); 
    }  
    con.close(); 
    } 
    catch(Exception e) 
    { 
     System.out.println(e); 
     } 
     } 

    } 
+1

請不要只是轉儲代碼,解釋什麼是錯的,以及你的代碼如何解決它。 –

1
while(rs.next()); 

該行正在經歷整個結果集,並沒有做任何事情(因爲結束聲明的分號)。然後,您的下一行代碼在沒有下一個項目的結果集上執行,因此失敗。

刪除該行中的分號,然後它會工作