2017-01-02 67 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()); 

该行正在经历整个结果集,并没有做任何事情(因为结束声明的分号)。然后,您的下一行代码在没有下一个项目的结果集上执行,因此失败。

删除该行中的分号,然后它会工作