SQLException: Parameter Index Out of Range
Beim Ausführen einer parametrisierten SQL-Abfrage kann der Fehler „java.sql.SQLException: Parameterindex außerhalb des gültigen Bereichs.“ Dieses Problem ist darauf zurückzuführen, dass die Anzahl der in der Abfrage angegebenen Parameter nicht mit der Anzahl der tatsächlichen Parameter übereinstimmt, die an PreparedStatement übergeben werden.
Ursache:
Dieser Fehler tritt auf, wenn Sie es versuchen um einen Parameterwert mit der Methode setXxx() für PreparedStatement festzulegen, aber die SQL-Abfrage enthält dafür keinen entsprechenden Platzhalter (?). Parameter.
Lösung:
Um dieses Problem zu beheben, stellen Sie sicher, dass die SQL-Abfrage die richtige Anzahl von Platzhaltern enthält. Der Parameterindex beginnt mit 1 und jeder Platzhalter (?) bezeichnet einen bestimmten Parameter, der mit der setXxx()-Methode festgelegt werden muss.
Zum Beispiel:
// Assuming "val1", "val2", and "val3" are valid values String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)"; PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); preparedStatement.setString(2, val2); preparedStatement.setString(3, val3);
Vermeiden Platzhalter in Anführungszeichen setzen:
Es ist wichtig zu beachten, dass Sie die Platzhalter in der SQL-Abfrage nicht in Anführungszeichen setzen sollten. Wenn Sie sie in Anführungszeichen setzen, interpretiert der SQL-Parser sie als tatsächliche Zeichenfolgenwerte, was die Parameterbindung verhindert.
Zusätzliche Ressourcen:
Das obige ist der detaillierte Inhalt vonWarum erhalte ich „java.sql.SQLException: Parameter Index Out of Range' in meinem PreparedStatement?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!