Rumah > pangkalan data > tutorial mysql > Mengapa saya mendapat NullPointerException apabila menyambung ke pangkalan data MySQL dari Java?

Mengapa saya mendapat NullPointerException apabila menyambung ke pangkalan data MySQL dari Java?

Susan Sarandon
Lepaskan: 2024-11-16 09:00:04
asal
454 orang telah melayarinya

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

Menyelesaikan Masalah Kegagalan Sambungan MySQL dalam Java

Masalah: Menyambung ke pangkalan data MySQL daripada program Java menghasilkan Ralat NullPointerException semasa memanggil DriverManager.getConnection().

Contoh Kod:

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();
            }
        }
    }
}
Salin selepas log masuk

Mesej Ralat:

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)
Salin selepas log masuk

Penyelesaian:

Ralat NullPointerException menunjukkan isu dengan permulaan pemacu MySQL. Punca paling biasa ialah menggunakan versi pemacu MySQL JDBC yang sudah lapuk.

Kemas kini Pemacu JDBC MySQL:

  • Navigasi ke https://mvnrepository. com/artifact/mysql/mysql-connector-java
  • Muat turun versi terkini (pada masa ini 8.0.12)
  • Tambahkan kebergantungan yang sepadan pada fail pom.xml projek Java anda:
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.12</version>
</dependency>
Salin selepas log masuk

Pembetulan Tambahan (untuk MySQL 8.0.1 ):

Jika isu itu berterusan, ia mungkin berkaitan dengan perubahan yang diperkenalkan dalam MySQL 8.0.1. Untuk menyelesaikannya:

  • Kemas kini kepada MySQL JDBC Driver 5.1.41 atau lebih baru
  • Sebagai alternatif, anda boleh menggunakan pengoptimuman berikut untuk MySQL 8.0.0 dalam URL sambungan anda:
jdbc:mysql://localhost:3306/?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa saya mendapat NullPointerException apabila menyambung ke pangkalan data MySQL dari Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan