2016-09-24 8 views
1

Wenn ich das Programm auszuführen, zeigt es den Fehler: Nein für Parameter angegeben Wert 1Exception in thread „main“ java.sql.SQLException: Kein Wert angegeben für Parameter 1

Der Fehler in dieser Anweisung auftritt : 'rowSet.execute();'

public static void main(String[] args) throws SQLException { 
    // Create a RowSet Instance 
    RowSet rowSet = new com.sun.rowset.JdbcRowSetImpl(); 

    // Establish the Databse Connection 
    rowSet.setUrl("jdbc:mysql://localhost:3306/jmysql?autoReconnect=false&useSSL=false"); 
    rowSet.setUsername("root"); 
    rowSet.setPassword("[email protected]#$Mysql2016"); 
    rowSet.setCommand("SELECT userpassword FROM user WHERE userid = ? " 
      + " AND userName = ? "); 
    //Execute the Sql Command 
    rowSet.execute(); 

    rowSet.setInt("userid", 415); 
    rowSet.setString("UserName", "[email protected]"); 

    // Display the UserPassword 
    System.out.print("Password : " + rowSet.getString(3)); 

    // Close the Connetion 
    rowSet.close(); 
} 

Exception in thread "main" java.sql.SQLException: No value specified for parameter 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919) at com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2611) at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2586) at com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2510) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2259) at com.sun.rowset.JdbcRowSetImpl.execute(JdbcRowSetImpl.java:567) at com.advjdbc.database.chapter.RowSetPerParepedStatement.main(RowSetPerParepedStatement.java:30)

Antwort

2

Der Grund, warum Sie die Ausnahme erhalten, dass Sie die execute() Methode aufrufen, bevor Sie alle Parameter eingestellt. So müssen Sie die params wie folgt festgelegt (vor der Methode execute()):

rowSet.setUrl("jdbc:mysql://localhost:3306/jmysql?autoReconnect=false& useSSL=false"); 
rowSet.setUsername("root"); 
rowSet.setPassword("[email protected]#$Mysql2016"); 
rowSet.setCommand("SELECT userpassword FROM user WHERE userid = ? AND userName = ? "); 

// set the param values 
rowSet.setInt(1, 415); 
rowSet.setString(2, "[email protected]"); 

//Execute the Sql Command 
rowSet.execute(); 
+0

Vielen Dank für Vorschlag ujulu .. –

+0

Nichts zu danken. – ujulu

Verwandte Themen