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
1. Klicken Sie mit der rechten Maustaste auf das ...
Inhaltsverzeichnis 1. Grundkonzepte und Grundbefe...
Inhaltsverzeichnis 1. Einleitung 2. Einfaches Epo...
1. Grundlegende Verwendung Es kann über den Mutat...
In diesem Artikel verwenden wir die Libudev-Bibli...
Float wird häufig im Layout von Webseiten verwend...
1. Einführung in MariaDB und MySQL 1. Einführung ...
Die Wirkung dieser Funktion ist ähnlich wie vue的p...
Ursprüngliche Absicht Der Grund für die Entwicklu...
Auf HTML-Seiten verfügen visuelle Elemente wie Sc...
1. Herunterladen Download-Adresse: https://dev.my...
Teil 3: ❤Drei Möglichkeiten, den Backend-Datenemp...
In unserem täglichen Geschäft ist die Formularval...
MySql öffnet regelmäßig ein MySQLInstallerConsole...
Inhalt 1. Container-Lebenszyklusmanagement (1) Do...