Heim >Java >javaLernprogramm >Warum gibt mein Java PreparedStatement „Parameterindex außerhalb des gültigen Bereichs' aus?

Warum gibt mein Java PreparedStatement „Parameterindex außerhalb des gültigen Bereichs' aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-25 21:31:09837Durchsuche

Why Does My Java PreparedStatement Throw

Fehler: „java.sql.SQLException: Parameterindex außerhalb des Bereichs (1 > Anzahl der Parameter, also 0)“

Problem

Beim Versuch, Daten in eine Datenbank einzufügen, tritt der Fehler auf, begleitet von der Meldung „java.sql.SQLException: Parameterindex außerhalb des gültigen Bereichs (1 > Anzahl der Parameter, also 0)".

Ursache

Dieser Fehler tritt auf, wenn Sie setXxx()-Methoden für ein PreparedStatement aufrufen, ohne Platzhalter (?) in der SQL-Abfrage anzugeben . Zum Beispiel:

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1); // Error occurs here

Lösung

Um dieses Problem zu beheben, fügen Sie Platzhalter in die SQL-Abfrage ein:

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1);

Beachten Sie, dass Parameterindizes bei 1 beginnen und es gibt Es ist nicht erforderlich, Platzhalter in der SQL-Zeichenfolge in Anführungszeichen zu setzen. Andernfalls wird derselbe Fehler auftreten.

Zusätzliche Ressourcen

  • [JDBC-Tutorial – Vorbereitete Anweisungen](https://docs.oracle.com/javase/tutorial/jdbc/ basics/prepared.html)

Das obige ist der detaillierte Inhalt vonWarum gibt mein Java PreparedStatement „Parameterindex außerhalb des gültigen Bereichs' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn