JDBC UPDATE Mit prepareStatement, das java.sql.SQLException verursacht: Parameterindex außerhalb des Bereichs (3> Anzahl der Parameter, dh 2) [duplizieren]

Diese Frage hat hier bereits eine Antwort:

java.sql.SQLException Parameterindex außerhalb des zulässigen Bereichs (1> Anzahl der Parameter, dh 0) [closed] 3 Antworten

Ich habe vor mir java.sql.SQLException: Parameterindex außerhalb des zulässigen Bereichs (3> Anzahl der Parameter, dh 2)., während eine oder zwei Spalten von @ aktualisiert werd 'reset_info' table mit fünf Spalten (id, mobile_tower_id, reset_value, date_time, clientip). 'id' ist ein automatisch generierter Primärschlüssel. Ich willAKTUALISIERE 'reset_value' einer bestimmten Zeile

Now Folgend ist der Quellcode:

        Class.forName("com.mysql.jdbc.Driver");
        System.out.println("Connecting to database...");
        conn = DriverManager.getConnection(DB_URL, USER, PASS);

        String sql = "UPDATE reset_info SET reset_value = ? WHERE id = ?";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1, 100);
        ps.setInt(3, 1000);

        ps.executeUpdate();
        conn.close(); 

Und Folgendes ist mein Stacktrace:

 Connecting to database...
java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3813)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3795)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3840)
at com.mysql.jdbc.PreparedStatement.setInt(PreparedStatement.java:3784)
at cdot.dsa.cfms.dbconnect.NewClass.main(NewClass.java:38)

Ist es obligatorisch, für jede Spalte der Tabelle einen Platzhalter ('?') Einzufügen?

Updating einer einzelnen Spalte von java.sql.Statement funktioniert, aber ich bekomme Ausnahme mit java.sql.preparedStatement.

Bitte um Hilfe. Konzeptionelle Ideen werden sehr geschätzt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage