Heim > Datenbank > MySQL-Tutorial > Warum erhalte ich eine NullPointerException, wenn ich von Java aus eine Verbindung zu einer MySQL-Datenbank herstelle?

Warum erhalte ich eine NullPointerException, wenn ich von Java aus eine Verbindung zu einer MySQL-Datenbank herstelle?

Susan Sarandon
Freigeben: 2024-11-16 09:00:04
Original
453 Leute haben es durchsucht

Why am I getting a NullPointerException when connecting to a MySQL database from Java?

Fehlerbehebung bei MySQL-Verbindungsfehlern in Java

Problem: Das Herstellen einer Verbindung zu einer MySQL-Datenbank aus einem Java-Programm führt zu einem NullPointerException-Fehler beim Aufruf von DriverManager.getConnection().

Codebeispiel:

import java.sql.*;

public class Squirrel {
    public static void main(String[] args) {
        String user;
        String password;
        Connection connection;
        Statement statement;
        try {
            Class.forName("com.mysql.jdbc.Driver");

            connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306", user, password);

            statement = connection.createStatement();

            // Other code
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (statement != null) {
                    statement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
Nach dem Login kopieren

Fehlermeldung:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.
...
Caused by: java.lang.NullPointerException
    at com.mysql.jdbc.ConnectionImpl.getServerCharset(ConnectionImpl.java:2997)
Nach dem Login kopieren

Lösung:

Der NullPointerException-Fehler weist auf ein Problem mit der MySQL-Treiberinitialisierung hin. Die häufigste Ursache ist die Verwendung einer veralteten Version des MySQL-JDBC-Treibers.

Aktualisieren Sie den MySQL-JDBC-Treiber:

  • Navigieren Sie zu https://mvnrepository. com/artifact/mysql/mysql-connector-java
  • Laden Sie die neueste Version herunter (derzeit 8.0.12)
  • Fügen Sie die entsprechende Abhängigkeit zur pom.xml-Datei Ihres Java-Projekts hinzu:
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.12</version>
</dependency>
Nach dem Login kopieren

Zusätzlicher Fix (für MySQL 8.0.1):

Wenn das Problem weiterhin besteht, hängt es möglicherweise mit Änderungen zusammen, die in MySQL 8.0.1 eingeführt wurden. Um dieses Problem zu beheben:

  • Update auf MySQL JDBC-Treiber 5.1.41 oder höher
  • Alternativ können Sie die folgende Optimierung für MySQL 8.0.0 in Ihrer Verbindungs-URL verwenden:
jdbc:mysql://localhost:3306/?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum erhalte ich eine NullPointerException, wenn ich von Java aus eine Verbindung zu einer MySQL-Datenbank herstelle?. 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