1. Übersicht über SQLException Wenn bei der Verwendung von JDBC zur Interaktion mit einer Datenquelle (die Datenquelle in diesem Artikel stellt die Datenbank dar, die wir tatsächlich verwenden) ein Fehler auftritt, wird eine Ausnahme namens SQLException ausgelöst. Eine SQLException enthält die folgenden Informationen, die uns helfen, den Fehler besser zu lokalisieren. Der Fehler weist auf Folgendes hin: Verwenden Sie die Methode getMessage, um es abzurufen. SQLState-Code Der Code besteht aus fünf Buchstaben und Zahlen. Die meisten Codes sind von ISO/ANSI und der Open Group (X/Open) standardisiert, es gibt jedoch immer noch einige Codes, die von den Datenbankanbietern selbst implementiert werden. Verwenden Sie die Methode getSQLState, um es abzurufen. Fehlercode Im Gegensatz zu SQLState sind Fehlercodes vom Datenbankanbieter definierte Ganzzahlwerte, wobei die Möglichkeit besteht, dass tatsächliche Fehlercodes von der zugrunde liegenden Datenquelle zurückgegeben werden. Verwenden Sie die Methode getErrorCode, um es abzurufen. Ursache Gibt die Ursache der Ausnahme an. Durch kontinuierliches Aufrufen der Methode getCause können Sie die zugrunde liegende Ursache der Ausnahme ermitteln. Ausnahmekette Wenn mehrere Fehler auftreten, werden die Ausnahmen über diese Kette referenziert. Verwenden Sie die Methode getNextException, um es abzurufen. 2. SQLException-Beispiel öffentliche statische Leere printSQLException (SQLException e) { für(Throwable e :ex){ if (e Instanz von SQLException){ wenn (ignoreSQLException(((SQLException)e).getSQLState()) == false) { e.printStackTrace(System.err); System.err.println("SQLState: " + ((SQLException)e).getSQLState()); System.err.println("Fehlercode: " + ((SQLException)e).getErrorCode()); System.err.println("Nachricht: " + e.getMessage()); Throwable t = Beispiel: getCause (); während(t != null){ System.out.println("Ursache: " + t); t = t.getCause(); } } } } } öffentliche statische Boolesche ignoreSQLException(String sqlState){ wenn(sqlState == null){ System.out.println("Der SQL-Status ist nicht definiert"); } // X0Y32: Jar-Datei existiert bereits im Schema wenn (sqlState.equalsIgnoreCase("X0Y32")) { gibt true zurück; } // 42Y55: Tabelle existiert bereits im Schema wenn(sqlState.equalsIgnoreCase("42Y55")){ gibt true zurück; } gibt true zurück; } Hinweis: Der obige Code stammt von [http:docs.oracle.com] (http://docs.oracle.com/javase/tutorial/jdbc/basics/sqlexception.html). 3. SQLWarning SQLWarning ist eine sehr wichtige Unterklasse von SQLException, die verwendet wird, um Warnungen anzuzeigen, die während des Datenbankzugriffs auftreten. Ausnahmsweise stoppt eine SQLWarning die Ausführung der Anwendung nicht, sondern macht den Benutzer darauf aufmerksam, dass nichts wie geplant geschieht. Eine Warnung könnte Sie beispielsweise darüber informieren, dass der Versuch, eine Berechtigung zu widerrufen, erfolglos war, oder dass beim Anfordern der Trennung der Verbindung möglicherweise ein Fehler aufgetreten ist. SQLWarning kann von Connection, Statement (einschließlich PreparedStatement und CallableStatement) oder ResultSet gemeldet werden. Diese Klassen haben alle eine getWarnings-Methode. Nur durch Aufrufen dieser Methode können Sie die erste Warnung sehen, die für das aufrufende Objekt gemeldet wird. Wenn getWarning eine Warnung zurückgibt, können wir seine Methode getNextWarning aufrufen, um die nächste Warnung zu erhalten. Bei jeder Ausführung einer Anweisungszeile wird die Warnung der vorherigen Anweisungszeile gelöscht. Dies bedeutet, dass wir die Warnungen vor der Ausführung der nächsten Anweisungszeile abrufen müssen, wenn wir sie aus der Berichtsverarbeitung abrufen möchten. DataTruncation ist die häufigste Warnung mit SQLState-Code 01004 und weist auf Probleme beim Lesen oder Schreiben von Daten hin. DataTruncation verfügt über viele Methoden, die uns helfen zu verstehen, welche Spalten- oder Parameterdaten abgeschnitten werden, ob die Abschneidung beim Lese- oder Schreibvorgang erfolgt, wie viele Bytes übertragen werden sollen und wie viele Bytes tatsächlich übertragen werden. 4. Andere Arten von SQLException BatchUpdateException: Wird ausgelöst, wenn während eines Batch-Aktualisierungsvorgangs ein Fehler auftritt. Zusätzlich zur bereitgestellten Meldung werden alle Anweisungen, die vor dem Auftreten des Fehlers beendet wurden, mit der angegebenen Aktualisierungsanzahl beendet. SQLClientInfoException: Wird ausgelöst, wenn eine oder mehrere Clientinformationseigenschaften für eine Verbindung nicht festgelegt werden können. Zusätzlich zu den bereitgestellten Informationen wird auch eine Liste nicht festgelegter Clientinformationseigenschaften bereitgestellt. bald... Zusammenfassen Dies ist der gesamte Inhalt dieses Artikels zur SQLException-Analyse bei der JDBC-Erkundung. Ich hoffe, er wird Ihnen hilfreich sein. Interessierte Freunde können weiterhin auf diese Site verweisen: Zusammenfassung gängiger JDBC-Schnittstellen, Codebeispiele für die Verwendung von JDBC zur Implementierung der Data Access Object Layer (DAO) usw. Wenn Sie Fragen haben, können Sie jederzeit eine Nachricht hinterlassen. Der Herausgeber wird Ihnen rechtzeitig antworten. Jeder ist herzlich eingeladen, eine Nachricht zur Diskussion zu hinterlassen. Das könnte Sie auch interessieren:
|
<<: Verwenden Sie reines JS, um den sekundären Menüeffekt zu erzielen
>>: VMware12.0-Installation Ubuntu14.04 LTS-Tutorial
Inhaltsverzeichnis Vorwort: erreichen: Zusammenfa...
In diesem Artikel wird der spezifische Code von J...
Inhaltsverzeichnis Werkzeug Installieren Sie das ...
In diesem Artikel wird der spezifische Code von V...
In diesem Artikel wird der spezifische Code von v...
Finden Sie das Problem Schauen wir uns zunächst d...
Ist Leistung wirklich wichtig? Leistung ist wicht...
In letzter Zeit stoße ich bei der Verwendung von ...
Vorwort: Die Funktion „Gruppieren nach“ ruft das ...
In diesem Artikel wird der spezifische Code zum I...
1. Verwenden Sie den Curl-Befehl für den Standard...
So installieren Sie Flash unter Linux 1. Besuchen...
Installieren Sie vor der Installation von Tomcat ...
Inhaltsverzeichnis 1. Einstellungen für die Spezi...
1. Unterabfrage MySQL 4.1 und höher unterstützen ...