Maison > base de données > tutoriel mysql > Pourquoi est-ce que je reçois une NullPointerException lors de la connexion à une base de données MySQL depuis Java ?

Pourquoi est-ce que je reçois une NullPointerException lors de la connexion à une base de données MySQL depuis Java ?

Susan Sarandon
Libérer: 2024-11-16 09:00:04
original
495 Les gens l'ont consulté

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

Dépannage de l'échec de la connexion MySQL en Java

Problème : La connexion à une base de données MySQL à partir d'un programme Java entraîne un Erreur NullPointerException lors de l'appel de DriverManager.getConnection().

Code Exemple :

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();
            }
        }
    }
}
Copier après la connexion

Message d'erreur :

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)
Copier après la connexion

Solution :

L'erreur NullPointerException indique un problème avec l'initialisation du pilote MySQL. La cause la plus courante est l'utilisation d'une version obsolète du pilote MySQL JDBC.

Mettez à jour le pilote MySQL JDBC :

  • Accédez à https://mvnrepository. com/artifact/mysql/mysql-connector-java
  • Téléchargez la dernière version (actuellement 8.0.12)
  • Ajoutez la dépendance correspondante au fichier pom.xml de votre projet Java :
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.12</version>
</dependency>
Copier après la connexion

Correction supplémentaire (pour MySQL 8.0.1) :

Si le problème persiste, il peut être lié aux modifications introduites dans MySQL 8.0.1. Pour résoudre ce problème :

  • Mise à jour vers le pilote MySQL JDBC 5.1.41 ou version ultérieure
  • Vous pouvez également utiliser l'optimisation suivante pour MySQL 8.0.0 dans votre URL de connexion :
jdbc:mysql://localhost:3306/?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal