JDBC 로드 드라이버
2952 단어 jdbc
자바 에 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 애플리케이션을 모든 SQL 데이터베이스와 연결그래서 오늘 이 기사를 통해 JDBC를 통해 Java 애플리케이션을 SQL 데이터베이스에 연결하기 위해 작성할 수 있는 각 줄을 설명하는 심층 가이드를 제공하여 그들과 모든 커뮤니티를 도우려고 합니다. JDBC는 J...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.