2009-04-01 7 views

답변

3

Class.forName()을 사용하면 특정 JDBC 드라이버에 대해 컴파일 타임 종속성이 필요하지 않습니다. 이는 다양한 데이터베이스에서 작동 할 수있는 코드를 작성할 때 특히 유용합니다. , XML 파일을

import org.postgresql.Driver; 

// Register the PostgreSQL driver 
DriverManager.registerDriver(new Driver()); 

그리고 등록 정보 파일에서 그 첫 번째 예에서, 클래스 이름도 올 수 있었다 고려해야과 비교 지금

// Register the PostgreSQL driver 
Class.forName("org.postgresql.Driver"); 

:

다음 코드를 고려 , 등등, 귀하의 응용 프로그램에 편리합니다.

1

감사합니다.

+0

음 ... 나는 링크가 맞다고 생각하지 않습니다. –

+0

고침, 고마워 (나는 그게 무슨 뜻인지 읽고 있었다. 나는 링크를 다시 잡는 것을 잊었다 :-) – TofuBeer

1

정적으로 드라이버를 참조하여 드라이버 인스턴스를 구성하면 인생이 훨씬 쉬워집니다. 일단 그렇게하면 악으로 만든 DriverManager을 무시할 수 있습니다.

2

JDBC API Tutorial and Reference은 이러한 질문에 대한 가장 좋은 참조 인 section of which addresses the role played by the Driver and DriverManager classes입니다.

모든 드라이버 클래스에는 Driver 클래스가로드 될 때 해당 드라이버의 인스턴스를 만들고 DriverManager에 등록하는 정적 초기화 프로그램이 있어야합니다.

또한 DriverManager.getConnection()은 클래스의 유일한 사용자 공간 친화적 인 메소드 일 수 있습니다. 대부분의 다른 메소드는 JDBC API를 사용하는 대부분의 개발자가 사용하지 않습니다. 따라서 오래된 격언은 여전히 ​​유효합니다. Class.forName()을 사용하여 드라이버를로드 한 다음 DriverManager.getConnection()을 사용하여 데이터베이스에 연결하십시오.

1

"성능이 좋아요?"

나는이 일회성 작업의 성능이 당신의 걱정거리 중 가장 적은 것이라고 말합니다.

Java EE 앱 서버를 사용하는 경우 대답은 "아니요"입니다. 연결 풀을 설정하고 드라이버로드 및 연결 전달을 처리하도록해야합니다.

+0

나는 당신의 의견에 동의한다. – harshit

관련 문제