JDBC 표준 지원
티베로 JDBC (이하 tbJDBC)가 지원하는 JDBC 표준 기능을 기능별로 설명합니다.
tbJDBC는 JDBC 4.0을 준수하고 있습니다. 다만, 표준에 따르면 필수적으로 구현해야 하는 부분과 벤더별로 구현여부를 선택 가능한 부분을 구분하여 명시하고 있으며, 이러한 추가 기능에 대해서는 지원하지 않을 수도 있습니다.
JDBC 2.0
인터페이스 메소드
tbJDBC에서 지원하는 주요 인터페이스 메소드
java.sql.Array
java.sql.Blob
java.sql.CallableStatement
java.sql.Clob
java.sql.Connection
java.sql.DatabaseMetaData
java.sql.Driver
java.sql.PreparedStatement
java.sql.ResultSet
java.sql.ResultSetMetaData
java.sql.Statement
java.sql.Struct
tbJDBC에서 지원하지 않는 인터페이스 메소드
java.sql.Ref
java.sql.SQLData
java.sql.SQLInput
java.sql.SQLOutput
주요 기능
JDBC 2.0 표준 지원하는 주요 기능에 대한 설명입니다.
결과 집합
tbJDBC에서 지원하는 결과 집합 기능은 아래와 같습니다.
Scrolling 기능 Scrolling 기능을 지원하는 스크롤 가능한 결과 집합(Scrollable ResultSet)을 생성할 수 있습니다. 이 기능은 결과 집합을 전 방향 또는 후 방향으로 탐색할 수 있습니다. 또한 결과 집합 내에서 상대적이거나 절대적인 위치 이동도 할 수 있습니다.
결과 집합 타입
Forward-only
최초 생성될 때의 데이터 값으로 고정되며, 오직 정방향으로만 탐색 가능
Scroll-insensitive
Forward-only 결과 집합과 마찬가지로 최초 생성될 때의 데이터 값으로 고정되지만 스크롤 가능한 결과 집합의 특성을 가지므로 정방향, 역방향, 상대위치, 절대위치 등으로 탐색 가능
Scroll-sensitive
데이터베이스 변화에 민감하며 데이터가 변경되는 경우 즉시 결과 집합에 반영되므로, 새로운 데이터를 볼 수 있음
Concurrency 타입 결과 집합에 대해 아래와 같이 2가지 Concurrency 타입을 지정할 수 있습니다.
Read-only
데이터를 수정할 수 없으므로. 여러 트랜잭션 때문에 발생할 수 있는 잠금(Lock) 현상은 없음
Updatable
데이터를 수정할 수 있음
(단, 서로 다른 사용자가 같은 데이터에 접근할 경우 잠금현상 때문에 동시수행 불가)
Batch update
Batch update 기능은 여러 개의 DML 문장을 한꺼번에 처리할 수 있는 기능입니다. 또한 개별로 INSERT 문을 수행하거나 준비된 문장(Prepared Statement)을 사용하여 파라미터만 바꿔가며 수행할 수도 있습니다. 이 때문에 시스템 성능 향상에 많은 도움을 줍니다.
데이터 타입
tbJDBC는 BLOB(Binary Large OBject)과 CLOB(Character Large OBject) 데이터 타입을 지원합니다. 사용자는 BLOB과 CLOB 데이터 타입의 데이터를 받아오기 위해 getClob(), getBlob() 메소드를 사용할 수 있으며, 데이터를 저장하기 위해 setClob(), setBlob() 메소드를 추가로 사용할 수 있습니다.
JDBC 3.0
인터페이스 메소드
tbJDBC에서 지원하는 주요 인터페이스 메소드
java.sql.ParameterMetaData
java.sql.Savepoints
tbJDBC에서 지원하는 javax.sql 패키지의 인터페이스 메소드
javax.sql.ConnectionEventListener
javax.sql.ConnectionPoolDataSource
javax.sql.DataSource
javax.sql.PooledConnection
javax.sql.RowSet
javax.sql.RowSetInternal
javax.sql.RowSetListener
javax.sql.RowSetMetaData
javax.sql.RowSetReader
javax.sql.RowSetWriter
javax.sql.XAConnection
javax.sql.XADataSource
주요 기능
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
인터페이스 메소드
tbJDBC에서 지원하는 주요 인터페이스 메소드
java.sql.NClob
java.sql.RowId
java.sql.SQLXML
java.sql.Wrapper
tbJDBC에서 지원하는 javax.sql 패키지의 인터페이스 메소드
javax.sql.StatementEventListener
주요 기능
지원 기능
아래는 JDBC 4.0 표준 지원하는 주요 기능에 대한 설명입니다.
XML 데이터 타입 SQLXML 인터페이스를 통해 SQL:2003에 추가된 XML 데이터 타입을 사용할 수 있습니다.
자동 드라이버 검출 자동으로 드라이버를 로딩할 수 있게 되어 Class.forName를 사용한 java.sql.Driver 클래스의 로드없이도 드라이버 객체를 사용할 수 있습니다.
국가별 캐릭터 셋 지원 데이터베이스에서 별도로 지정해 사용하는 국가별 캐릭터 셋을 지원하기 위한 API가 추가되었습니다.
향상된 SQLException 연쇄적으로 연결된 예외를 생성할 수 있게 되어 보다 자세한 원인을 전달해 줄 수 있으며, 새로운 종류의 예외 타입이 추가되었습니다.
향상된 Blob/Clob 기능 Blob/Clob 객체를 생성/해제할 수 있는 API를 지원합니다.
ClientInfo 설정 기능 setClientInfo/getClientInfo 함수를 사용한 ClientInfo 설정/조회를 지원합니다.
SQL ROWID 데이터 타입의 지원 RowId 인터페이스를 이용하여 SQL ROWID 타입을 사용할 수 있습니다.
실제 JDBC 객체에 대한 접근 허용 Wrapper 인터페이스를 이용하여 애플리케이션 서버나 접속 풀링 환경에서도 실제 JDBC 객체에 접근 해 사용할 수 있습니다.
접속 풀링 환경에서 실제 접속 상태에 대한 통지 접속 풀링 환경에서 실제 접속이 닫히거나 유효하지 않게 되었을 때 그 상태를 풀링된 문장에 통지해줍니다.
사용자 정의 타입 조회, 사용자 정의 타입을 인자로 하는 PSM 호출 Struct, Array 타입을 생성해서 inbind하거나 서버로부터 select한 후 outbind해서 구조적으로 탐색할 수 있습니다.
JDBC 4.1
인터페이스 메소드
tbJDBC에서 지원하는 주요 인터페이스 메소드
java.sql.Connection - void abort(Executor executor) - void setSchema(String schema) - String getSchema()
java.sql.Statement - void closeOnCompletion() - boolean isCloseOnCompletion()
java.sql.ResultSet - <T> T getObject(int parameterIndex, Class<T> type)
주요 기능
지원 기능
아래는 JDBC 4.1 표준 지원하는 주요 기능에 대한 설명입니다.
BIGINT java.math.BigInteger와 JDBC Type BIGINT를 지원합니다.
Connection - abort함수를 사용한 연결 종료를 지원합니다. - setSchema함수를 사용한 schema 지정을 지원합니다. - setNetworkTimeout함수를 사용한 timeout 지정을 지원합니다.
Statement closeOnCompletion함수를 사용해 결과 집합이 닫힐 때 닫히도록 설정할 수 있습니다.
ResultSet getObject함수의 인자로 Class를 사용하여 반환 타입 지정을 할 수 있도록 지원합니다.
JDBC 4.2
인터페이스 메소드
tbJDBC에서 지원하는 주요 인터페이스 메소드
java.sql.CallableStatement
void registerOutParameter(int parameterIndex, SQLType sqlType)
java.sql.PreparedStatement
void setObject(int parameterIndex, Object x, SQLType targetSqlType)
java.sql.Statement
long executeLargeUpdate()
java.sql.SQLInput
<T> T readObject(Class<T> type)
java.sql.SQLOutput
void writeObject(Object x, SQLType sqlType)
주요 기능
지원 기능
아래는 JDBC 4.2 표준 지원하는 주요 기능에 대한 설명입니다.
java.time LocalDate, LocalTime, LocalDateTime, OffsetTime, OffsetDateTime 타입을 지원합니다.
SQLType setObject, registerOutParameter함수의 인자로 SQLType을 사용한 타입 지정을 지원합니다.
Statement executeLargeUpdate함수를 사용해 업데이트 횟수를 long으로 받을 수 있습니다.
Last updated