제2장 JDBC 표준 지원

내용 목차

2.1. JDBC 2.0
2.1.1. 인터페이스 메소드
2.1.2. 주요 기능
2.2. JDBC 3.0
2.2.1. 인터페이스 메소드
2.2.2. 주요 기능
2.3. JDBC 4.0
2.3.1. 인터페이스 메소드
2.3.2. 주요 기능

tbJDBC는 JDBC 4.0을 준수하고 있다. 다만, 표준에 따르면 필수적으로 구현해야하는 부분과 벤더별로 구현여부를 선택 가능한 부분을 구분하여 명시하고 있으며, 이러한 추가 기능에 대해서는 지원하지 않을 수도 있다. 본 장에서는 tbJDBC가 지원하는 JDBC 표준을 기능별로 설명한다.

다음은 JDBC 2.0 표준 지원하는 주요 기능에 대한 설명이다.

tbJDBC는 JDBC 3.0 표준의 일부를 제외한 모든 기능을 지원한다.

지원 기능

다음은 JDBC 3.0 표준 지원하는 주요 기능에 대한 설명이다.

  • 저장점

    Savepoint 인터페이스를 구현하여 임의의 트랜잭션에 대한 저장점 설정과 커밋 및 롤백 기능을 제공한다. 단, 특정한 저장점을 해제하는 Connection.releaseSavepoint java.sql 메소드는 제공하지 않는다.

  • 문장 풀링(Pooling)

    접속 풀링과 관련된 문장의 풀링을 제공한다.

  • 접속 풀링(Pooling)

    ConnectionPoolDataSource 인터페이스에서 설정할 수 있는 내용을 지원한다. 사용자는 DataSource 객체에 의해 PooledConnection이 어떠한 특성을 갖고 생성될지를 결정할 수 있다.

  • 파라미터 메타데이터

    ParameterMetaData 인터페이스를 구현한 JDBC 클래스는 준비된 문장(Prepared Statement)에서 사용한 파라미터 개수의 정보를 제공한다. 단, 데이터 타입과 속성(Property)에 대한 메타데이터(metadata)는 제공하지 않는다.

  • 자동 생성 키

    SQL 문장을 실행한 후 결과 집합으로부터 getGeneratedKeys 함수를 사용하여 결과 로우에 대한 키 또는 자동으로 생성된 컬럼의 값을 얻는다.

  • 이름 있는 파라미터

    CallableStatement 객체의 파라미터를 저장할 때 파라미터 이름으로 구별할 수 있는 이름 있는 파라미터(named parameter) 기능을 지원한다.

  • 결과 집합의 유지성

    결과 집합이 열려있는 동안에 커밋이 발생했을 때 결과 집합을 그대로 유지할지 아니면 닫을지를 설정한다. tbJDBC에서는 결과집합을 유지하는 방법만을 지원한다.

  • 여러 개의 결과 집합 반환

    한 SQL 문장이 여러 개의 결과 집합을 열 수 있도록 지원한다.

  • BLOB와 CLOB 객체에 존재하는 데이터의 수정

    updateXXX API를 통해 BLOB와 CLOB 객체에 포함된 데이터를 수정하는 기능을 제공한다.

미지원 기능

tbJDBC에서 지원하지 않는 기능은 다음과 같다.

  • BOOLEAN, DATALINK, URL 데이터 타입

  • REF 객체의 수정

  • 그룹 변환 및 데이터 타입의 매핑

지원 기능

다음은 JDBC 4.0 표준 지원하는 주요 기능에 대한 설명이다.

  • XML 데이터 타입

    SQLXML 인터페이스를 통해 SQL:2003에 추가된 XML 데이터 타입을 사용할 수 있다.

  • 자동 드라이버 검출

    자동으로 드라이버를 로딩할 수 있게 되어 Class.forName를 사용한 java.sql.Driver 클래스의 로드 없이도 드라이버 객체를 사용할 수 있다.

  • 국가별 캐릭터 셋 지원

    데이터베이스에서 별도로 지정해 사용하는 국가별 캐릭터 셋을 지원하기 위한 API가 추가되었다.

  • 향상된 SQLException

    연쇄적으로 연결된 예외를 생성할 수 있게 되어 보다 자세한 원인을 전달해 줄 수 있으며, 새로운 종류의 예외 타입이 추가되었다.

  • 향상된 Blob/Clob 기능

    Blob/Clob 객체를 생성/해제할 수 있는 API를 지원한다.

  • SQL ROWID 데이터 타입의 지원

    RowId 인터페이스를 이용하여 SQL ROWID 타입을 사용할 수 있다.

  • 실제 JDBC 객체에 대한 접근 허용

    Wrapper 인터페이스를 이용하여 애플리케이션 서버나 접속 풀링 환경에서도 실제 JDBC 객체에 접근해 사용할 수 있다.

  • 접속 풀링 환경에서 실제 접속 상태에 대한 통지

    접속 풀링 환경에서 실제 접속이 닫히거나 유효하지 않게 되었을 때 그 상태를 풀링된 문장에 통지해 준다.

  • 사용자 정의 타입 조회, 사용자 정의 타입을 인자로 하는 PSM 호출

    Struct, Array 타입을 생성해서 inbind하거나 서버로부터 select한 후 outbind해서 구조적으로 탐색할 수 있다.