2009-07-01 4 views
3

JDBC 3 및 ​​4에서 작동하는 java.sql.Connection의 래퍼를 만들 수있는 해킹이 있습니까 (Sun은 몇 가지 메소드와 새로운 유형을 추가했습니다. JDBC를위한 인터페이스에 컴파일 타임에 소스를 패치하는 것에 의지하지 않고?JDBC 3 및 ​​4에서 작동하는 java.sql.Connection에 대한 래퍼 만들기

자바 5와 6에서 작동하는 라이브러리를 생성해야하는데 실제로 두 버전을 만드는 것을 피하고 싶습니다.

+0

JDBC 3 인터페이스에 쓸 수없는 이유가 있습니까? –

+0

이러한 클래스는 Java 6에서로드되지 않습니다 ("클래스 DBConnection extends Connection은 추상 클래스가 아니며 createStruct를 구현하지 않습니다"). –

답변

1

시도한 적이 있지만 작동 할 수 있습니다.

클래스를 만들어 Java 6 버전을 구현하십시오. java.sql (NClob, SQLXML, SQLClientInfoException)의 새 클래스에 문제가 있습니다. 이 클래스들을 사용하지 않는다고 가정하면 (자바 5에서도 마찬가지로), 더미 구현을 만들어 별도의 jar에 넣는다. Java 5 배치에서 올바르게로드 될 수 있도록 -Xbootclasspath 명령 줄 변수와 함께이 jar를 참조하십시오.

랩퍼는 올바르게 위임하기 위해 Java 5 또는 6에서 실행되는지 여부를 알아야하므로 모든 Java 6 기능을 별도의 클래스에서 처리하고 실행 중에 인스턴스화해야 할 수 있습니다 시간 (state 디자인 패턴 참조)