Heim > Java > javaLernprogramm > Warum erhalte ich „java.sql.SQLException: Parameter Index Out of Range' in meinem PreparedStatement?

Warum erhalte ich „java.sql.SQLException: Parameter Index Out of Range' in meinem PreparedStatement?

Barbara Streisand
Freigeben: 2024-12-18 12:12:15
Original
560 Leute haben es durchsucht

Why Do I Get

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);
Nach dem Login kopieren

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:

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

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage