> 데이터 베이스 > MySQL 튜토리얼 > Java에서 MySQL 데이터베이스에 연결할 때 NullPointerException이 발생하는 이유는 무엇입니까?

Java에서 MySQL 데이터베이스에 연결할 때 NullPointerException이 발생하는 이유는 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-16 09:00:04
원래의
454명이 탐색했습니다.

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

Java에서 MySQL 연결 실패 문제 해결

문제: Java 프로그램에서 MySQL 데이터베이스에 연결하면 호출 시 NullPointerException 오류 발생 DriverManager.getConnection().

코드 예:

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();
            }
        }
    }
}
로그인 후 복사

오류 메시지:

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)
로그인 후 복사

해결책:

NullPointerException 오류는 MySQL 드라이버 초기화에 문제가 있음을 나타냅니다. 가장 일반적인 원인은 오래된 버전의 MySQL JDBC 드라이버를 사용하는 것입니다.

MySQL JDBC 드라이버 업데이트:

  • https://mvnrepository로 이동합니다. com/artifact/mysql/mysql-connector-java
  • 최신 다운로드 버전(현재 8.0.12)
  • Java 프로젝트의 pom.xml 파일에 해당 종속성을 추가합니다.
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.12</version>
</dependency>
로그인 후 복사

추가 수정(MySQL 8.0.1용) :

문제가 지속되면 다음에 도입된 변경 사항과 관련이 있을 수 있습니다. MySQL 8.0.1. 이 문제를 해결하려면:

  • MySQL JDBC Driver 5.1.41 이상으로 업데이트
  • 또는 연결 URL에서 MySQL 8.0.0에 대해 다음 최적화를 사용할 수 있습니다.
jdbc:mysql://localhost:3306/?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
로그인 후 복사

위 내용은 Java에서 MySQL 데이터베이스에 연결할 때 NullPointerException이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿