Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

java.sql.SQLException 해결 방법: 'localhost 테스트에 적합한 드라이버를 찾을 수 없습니다' 오류

Java에서 데이터베이스에 연결할 때 'No suitable driver found for jdbc:mysql://localhost:3306/test'와 같은 java.sql.SQLException 예외가 발생하는 경우가 있습니다. 이 오류는 로드된 JDBC 드라이버 중 어느 것도 acceptsURL() 메서드를 통해 현재 사용하려는 JDBC URL을 인식하지 못할 때 발생합니다. 가장 흔한 원인은 MySQL JDBC 드라이버가 클래스패스에 포함되지 않았거나, JDBC URL 형식이 올바르지 않은 경우입니다.

원인과 해결 방법

이 문제를 해결하려면 프로젝트에 MySQL Connector/J(JDBC 드라이버)를 추가하고, 아래와 같은 올바른 MySQL JDBC URL을 사용해야 합니다.

jdbc:mysql://localhost:3306/test?useSSL=false

acceptsURL() 메서드란?

JDBC 드라이버의 acceptsURL() 메서드는 해당 드라이버가 주어진 데이터베이스 URL을 이해할 수 있는지 판단하는 역할을 합니다. 메서드 원형은 다음과 같습니다.

boolean acceptsURL(String url) throws SQLException

이 메서드는 String 타입의 데이터베이스 URL을 매개변수로 받으며, 드라이버가 해당 URL을 처리할 수 있으면 true, 그렇지 않으면 false를 반환합니다. 모든 드라이버가 false를 반환하면 DriverManager는 적합한 드라이버를 찾지 못했다는 의미로 위 예외를 던지게 됩니다.

올바른 데이터베이스 연결 문법

전체 데이터베이스 연결 코드는 다음과 같은 형식으로 작성합니다.

con = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/yourDatabaseName?useSSL=false",
    "yourUserName",
    "yourPassword"
);

예제 코드

다음은 MySQL 데이터베이스에 정상적으로 연결하는 Java 예제입니다.

import java.sql.Connection;
import java.sql.DriverManager;

public class AvoidSQLException {
    public static void main(String[] args) {
        Connection con = null;
        try {
            con = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/sample?useSSL=false",
                "root",
                "123456"
            );
            System.out.println("Connection is successful !!!!!");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

Connection is successful !!!!!

추가 확인 사항

그래도 동일한 오류가 발생한다면 다음 항목들을 점검해 보세요.

- 드라이버 의존성 확인: Maven 프로젝트라면 mysql-connector-j 의존성이 pom.xml에 추가되어 있는지 확인합니다.
- 클래스패스 등록: 일반 Java 프로젝트라면 MySQL Connector/J JAR 파일이 빌드 경로에 포함되어 있는지 확인합니다.
- JDBC URL 오타 검사: jdbc:mysql:// 접두사가 정확히 입력되었는지, 포트 번호(기본값 3306)와 데이터베이스 이름이 올바른지 확인합니다.
- 드라이버 명시적 로딩: 구버전 환경이라면 연결 전에 Class.forName("com.mysql.cj.jdbc.Driver")를 호출하여 드라이버를 명시적으로 로드할 수도 있습니다.

이처럼 올바른 JDBC 드라이버를 준비하고 정확한 URL 형식을 사용하면 '적합한 드라이버를 찾을 수 없습니다' 오류를 손쉽게 해결할 수 있습니다.