JDBC 로드 드라이버

2952 단어 jdbc
전송: http://blog.csdn.net/ronux/article/details/8186488
자바 에 JDBC 데이터베이스 연결 을 만 들 고 간단 한 4 단계 로 나 눕 니 다. 1. 코드 에 JDBC 가 사용 하 는 클래스, import 자바. sql. * 를 도입 합 니 다.2. JDBC 드라이버 등록: JVM 에서 해당 하 는 드라이버 를 메모리 에 불 러 옵 니 다.3. URL 정 보 를 구성 합 니 다.4. DriverManger. getConnnection () 에서 연결 을 만 듭 니 다.그러나 드라이버 를 등록 할 때 몇 가지 다른 방법 이 있 습 니 다. 1). Class. forName ("com. my sql. jdbc. Driver");2).Class.forName("com.mysql.jdbc.Driver").newInstance();3).DriverManager.registerDriver(new com.mysql.jdbc.Driver())。자바 에 서 는 필요 할 때 만 불 러 오 는 클래스 가 있 으 며, JDBC 의 코드 는 드라이버 를 직접 참조 하지 않 기 때문에 코드 에서 상기 세 가지 방식 으로 만 자동 으로 불 러 옵 니 다.저 는 앞의 두 가지 등록 구동 의 차 이 를 알 고 싶 었 습 니 다. 사실은 이 렇 습 니 다. 모든 데이터 베이스 공급 자가 실현 하 는 Driver 는 static 코드 블록 이 있 습 니 다. 즉, 첫 번 째 방식 으로 특정한 Driver 를 불 러 올 때 필요 한 초기 화 작업 을 완 료 했 습 니 다.두 번 째 방식 을 따 르 지 않 아 도 된다 는 얘 기다. 뉴 인 스 턴 스 (newInstance) 도 가능 하 다.그러나 현실 적 인 프로그램 은 대부분 두 번 째 방식 을 사용한다. tutorialspoint 에 서 는 프로그램 이 호 환 되 지 않 는 JVM 에서 도 정상적으로 작 동 할 수 있 도록 하기 위 한 것 이 라 고 설명 했다.com. mysql. jdbc. Driver 의 static 코드 블록:
static {  
    try {  
        java.sql.DriverManager.registerDriver(new Driver());  
    } catch (SQLException E) {  
        throw new RuntimeException("Can't register driver!");  
    }  
}  
 
Driver 를 불 러 오고 초기 화 하 는 작업 이 완료 되 었 습 니 다. 그러나 데이터베이스 연결 을 만 들 때 DriverManager 는 우리 가 필요 로 하 는 드라이브 가 무엇 인지 모 릅 니 다. JVM 은 my sql 뿐만 아니 라 드라이버 를 불 러 올 수 있 기 때 문 입 니 다.이 를 실현 하 는 과정 에서 DriverManager 는 drivers 배열 (내부 에서 Vector 형식) 을 옮 겨 다 니 며 각각 driver (불 러 온) 의 accepts URL (url) 을 호출 하여 이러한 url 을 처리 할 수 있 는 지 물 어 드라이버 를 선택 하 는 작업 을 수행 합 니 다.
그러나 JDBC 4.0 이 출시 된 지 몇 년 이 되 었 습 니 다. 자바 SE Service Provider 체제 에 따 르 면 Class. forName ("com. my sql. jdbc. Driver") 은 더 이상 필요 하지 않 으 며, 이미 이렇게 한 오래된 코드 에 대해 서 는 한 줄 의 코드 를 수정 하지 않 아 도 여전히 적 용 됩 니 다.새 규범 에 서 는 데이터베이스 공급 자의 JDBC 만 있 으 면
jar 패 키 지 는 classpath 에 추 가 됩 니 다. 개발 자 는 어떤 Driver 가 필요 한 지 알 필요 가 없 으 며 프로그램 코드 와 Driver 의 이름 은 전혀 무관 합 니 다.그러나 이렇게 하 는 것 은 전제 적 인 것 이다. 데이터베이스 공급 자의 JDBC jar 패 키 지 는 이러한 새로운 메커니즘 을 지원 해 야 한다.구체 적 으로 말 하면 JDBC 4.0 Driver jar 패키지 에는 META - INF / services / java. sql. Driver 파일 이 포함 되 어 있어 야 합 니 다. 이 파일 에는 공급 자가 구현 한 새 Driver 류 의 전체 경로 가 포함 되 어 있 습 니 다.
참고 자료:
http://www.tutorialspoint.com/jdbc/jdbc-db-connections.htm
http://stackoverflow.com/questions/12933113/better-understaning-class-fornamecom-mysql-jdbc-driver-newinstance?rq=1

좋은 웹페이지 즐겨찾기