Heim > Datenbank > MySQL-Tutorial > Warum löst mein Java-Code eine SQL-Ausnahme „Parameterindex außerhalb des Bereichs' aus?

Warum löst mein Java-Code eine SQL-Ausnahme „Parameterindex außerhalb des Bereichs' aus?

Mary-Kate Olsen
Freigeben: 2024-12-27 00:48:17
Original
674 Leute haben es durchsucht

Why Does My Java Code Throw a

Parameterindex außerhalb des gültigen Bereichs in SQL-Ausnahme: Ursachen und Lösung

Es tritt die Ausnahme „java.sql.SQLException: Parameterindex außerhalb des Bereichs“ auf „Bereich (1 > Anzahl der Parameter, also 0)“ beim Einfügen in die Datenbank kann frustrierend sein. Dieser Fehler tritt auf, wenn Sie versuchen, einen Parameterwert in einer vorbereiteten Anweisung festzulegen, während in der SQL-Abfrage die entsprechenden Platzhalter (?) für diese Parameter fehlen.

Fehlerursache:

Dieser Fehler tritt auf, wenn Sie versuchen, die Methode setXxx() für PreparedStatement zu verwenden, die SQL-Abfragezeichenfolge jedoch nicht über die erforderlichen Platzhalter für den angegebenen Parameter verfügt index.

Beispiel für falschen Code:

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (val1, val2, val3)";

preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1); // This will fail.
preparedStatement.setString(2, val2);
preparedStatement.setString(3, val3);
Nach dem Login kopieren

Lösung:

Um dieses Problem zu beheben, müssen Sie Folgendes tun Ändern Sie die SQL-Abfragezeichenfolge so, dass sie Platzhalter (?) für alle gewünschten Parameter enthält eingestellt.

Beispiel für korrigierten Code:

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)";

preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, val1);
preparedStatement.setString(2, val2);
preparedStatement.setString(3, val3);
Nach dem Login kopieren

Hinweis:

  • Parameterindizes beginnen bei 1 .
  • Sie sollten es vermeiden, die Platzhalter in einfache oder doppelte Anführungszeichen zu setzen. Dies führt dazu, dass der SQL-Parser sie als Zeichenfolgenwerte interpretiert, was zur gleichen Ausnahme führt.

Zusätzliche Informationen:

  • [JDBC-Tutorial - Vorbereitet Anweisungen](https://docs.oracle.com/javase/7/docs/technotes/guides/jdbc/index.html#prepared)

Das obige ist der detaillierte Inhalt vonWarum löst mein Java-Code eine SQL-Ausnahme „Parameterindex außerhalb des Bereichs' aus?. 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