집 >데이터 베이스 >MySQL 튜토리얼 >일부 Java JDBC 애플리케이션이 `Class.forName()`을 사용하여 명시적인 드라이버 등록 없이 작동하는 이유는 무엇입니까?
Java에서 JDBC 드라이버 등록: Class.forName(JDBC_DRIVER)의 필요성 명시
Java 버전 6 이상인 것으로 보고되었습니다. 활용으로 인해 Class.forName(JDBC_DRIVER) 메소드를 사용하여 JDBC 드라이버를 등록해야 하는 요구 사항이 제거됩니다. "jdbc.drivers" 시스템 속성 중 하나입니다. 그러나 일부 개발자는 "jdbc.drivers" 값을 검색하면 null이 반환되는 시나리오에 직면했습니다.
이러한 불일치로 인해 명시적으로 등록된 드라이버가 없어도 JDBC를 사용하는 Java 애플리케이션이 올바르게 작동하는 이유는 무엇입니까?
답은 Java 6 및 JDBC 4에 도입된 "서비스 제공자"라는 기능에 있습니다. 이 메커니즘을 통해 JVM은 시작 중에 지정된 인터페이스의 구현을 감지할 수 있습니다. 이 개념을 준수하는 JDBC 드라이버는 DriverManager에 의해 자동으로 등록될 수 있으므로 Class.forName()이 필요하지 않게 됩니다.
서비스 등록 프로세스는 드라이버 JAR 파일 내의 "services" 디렉토리에 의존합니다. META-INF 디렉터리에 있습니다. 이 디렉토리에는 구현된 인터페이스(JDBC 드라이버용 java.sql.Driver) 및 해당 구현 클래스의 이름을 지정하는 텍스트 파일이 포함되어야 합니다.
서비스 공급자 개념을 준수하면 JDBC 드라이버를 자동으로 등록할 수 있습니다. 명시적인 Class.forName() 호출이 필요합니다. 그러나 이는 서비스 제공자 메커니즘과 호환되는 드라이버에만 적용됩니다.
위 내용은 일부 Java JDBC 애플리케이션이 `Class.forName()`을 사용하여 명시적인 드라이버 등록 없이 작동하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!