Heim > Java > javaLernprogramm > Warum erhalte ich in meinem Java-Code die Meldung „java.sql.SQLException: Parameterindex außerhalb des gültigen Bereichs (1 > Anzahl der Parameter, also 0)'?

Warum erhalte ich in meinem Java-Code die Meldung „java.sql.SQLException: Parameterindex außerhalb des gültigen Bereichs (1 > Anzahl der Parameter, also 0)'?

Mary-Kate Olsen
Freigeben: 2024-12-16 04:38:13
Original
131 Leute haben es durchsucht

Why Am I Getting Anzahl der Parameter, die 0 ist)“ in „Mein Java-Code“? „ /> Anzahl der Parameter, die 0 ist)“ in meinem Java-Code? " />

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

Im Bereich Bei der Java-Programmierung tritt beim Versuch die Fehlermeldung „java.sql.SQLException: Parameterindex außerhalb des Bereichs (1 > Anzahl der Parameter, also 0)“ auf Führen Sie eine SQL-Abfrage unter Verwendung von PreparedStatement aus, ohne entsprechende Platzhalter in der Abfragezeichenfolge bereitzustellen.

Dieser Fehler tritt insbesondere auf, wenn setXxx()-Methoden für PreparedStatement aufgerufen werden. Dies stellt jedoch sicher, dass die SQL-Abfrage keine Platzhalter enthält , der Fehler wird ausgelöst.

Ursache:

Die Hauptursache des Fehlers ist das Fehlen von Platzhalter (?) in der SQL-Abfrage verwendet diese Platzhalter, um das dynamische Einfügen von Parametern zu ermöglichen.

Lösung:

Um dieses Problem zu beheben, müssen Sie Ändern Sie Ihre SQL-Abfrage so, dass sie Platzhalter für jeden Parameter enthält, den Sie mithilfe der setXxx()-Methoden festlegen möchten, wenn Sie beispielsweise über eine Abfragezeichenfolge verfügen etwa:

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

Sie müssten es wie folgt ändern:

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

Es ist wichtig zu beachten, dass der Parameterindex mit 1 beginnt. Daher ist keine Anführungszeichen erforderlich die Platzhalter wie folgt:

String sql = "INSERT INTO tablename (col1, col2, col3) VALUES ('?', '?', '?')";
Nach dem Login kopieren

Dies führt zum gleichen Fehler, da der SQL-Parser die Platzhalter in Anführungszeichen stattdessen als tatsächliche Zeichenfolgenwerte behandelt von Platzhaltern für die Parameterbindung.

Zusätzliche Überlegungen:

Für weitere Einblicke wird empfohlen, auf die folgenden Ressourcen zu verweisen:

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

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinem Java-Code die Meldung „java.sql.SQLException: Parameterindex außerhalb des gültigen Bereichs (1 > Anzahl der Parameter, also 0)'?. 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