> 데이터 베이스 > MySQL 튜토리얼 > 현대 Java에서는 `Class.forName(JDBC_DRIVER)`가 더 이상 사용되지 않습니까?

현대 Java에서는 `Class.forName(JDBC_DRIVER)`가 더 이상 사용되지 않습니까?

Susan Sarandon
풀어 주다: 2025-01-04 12:05:41
원래의
400명이 탐색했습니다.

Is `Class.forName(JDBC_DRIVER)` Obsolete in Modern Java?

Class.forName(JDBC_DRIVER) - 더 이상 사용되지 않습니까?

Java 6에서는 Class.forName(JDBC_DRIVER) 사용을 더 이상 사용하지 않는다는 주장에도 불구하고 , JDBC 드라이버를 명시적으로 등록하지 않고도 특정 응용 프로그램이 여전히 올바르게 작동하는 것으로 관찰되었습니다. 이러한 동작은 이 방법의 필요성에 대한 의문을 제기했습니다.

논쟁 조사

System.getProperty("jdbc.drivers")가 null을 반환하면 이는 시스템 속성 방법은 드라이버 등록에 영향을 미치지 않습니다. 대신, 문제는 Java 6 및 JDBC4의 "서비스 제공자" 개념 도입에 있습니다.

서비스 제공자 메커니즘

이 메커니즘에서 알려진 인터페이스의 구현 시작하는 동안 JVM에 의해 감지될 수 있습니다. 이 개념을 준수하는 드라이버는 DriverManager에 의해 자동으로 등록되므로 Class.forName()이 필요하지 않습니다. 그러나 이는 이 메커니즘을 지원하는 드라이버에만 적용됩니다.

서비스 디렉터리의 역할

서비스 디렉터리가 드라이버의 JAR 파일에 존재할 때 서비스 등록이 시작됩니다. , META-INF 디렉토리 내부. 이 디렉터리 내에는 구현된 인터페이스(JDBC 드라이버의 경우 java.sql.Driver) 및 구현 클래스의 이름이 포함된 텍스트 파일이 있어야 합니다.

결론

JDBC 드라이버가 서비스 공급자 메커니즘을 지원하지 않는 경우 Class.forName(JDBC_DRIVER) 메서드가 여전히 필요할 수 있습니다. 그러나 그렇게 하는 드라이버의 경우 DriverManager가 자동으로 이를 감지하고 로드하므로 명시적인 등록이 더 이상 필요하지 않습니다.

위 내용은 현대 Java에서는 `Class.forName(JDBC_DRIVER)`가 더 이상 사용되지 않습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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