|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 패키지 다음의 패키지 | 프레임 있어 프레임 없음 |
참조처:
설명
인터페이스의 개요 | |
---|---|
CommonDataSource | DataSource ,XADataSource , 및 ConnectionPoolDataSource 에 공통의 메소드를 정의하는 인터페이스입니다. |
ConnectionEventListener |
PooledConnection 객체에 의해 생성된 이벤트가 통지되도록(듯이) 등록하는 객체입니다. |
ConnectionPoolDataSource | PooledConnection 객체의 팩토리입니다. |
DataSource | 이 DataSource 객체가 나타내는 물리 데이터 소스에의 접속에 대한 팩토리입니다. |
PooledConnection | 접속 풀 관리의 훅을 제공하는 객체입니다. |
RowSet | JavaBeansTM 컴퍼넌트 모델의 JDBC API 로 지원되게 된 인터페이스입니다. |
RowSetInternal | RowSet 객체가 자신을 RowSetReader 객체나 RowSetWriter 객체에 건네주기 위해서(때문에) 구현하는 인터페이스입니다. |
RowSetListener | RowSet 객체의 유효기간중에 중요한 이벤트가 발생했을 때에 통지를 희망하는 컴퍼넌트에 의해 구현되고 있는 인터페이스입니다. |
RowSetMetaData | RowSet 객체의 열에 관한 정보를 포함하는 객체입니다. |
RowSetReader | 절단 된 RowSet 객체가, 열데이터 첨부로 자기 자신을 생성하기 위해서 호출하는 기능입니다. |
RowSetWriter | RowSetWriter 인터페이스를 구현하는 객체로, 「라이터」라고 불립니다. |
StatementEventListener | Statement 풀내의 PreparedStatement 로 발생한 이벤트의 통지를 받도록(듯이) 등록되어 있는 객체입니다. |
XAConnection | 분산 트랜잭션(transaction)를 지원하는 객체입니다. |
XADataSource | 내부에서 사용되는 XAConnection 객체의 팩토리입니다. |
클래스의 개요 | |
---|---|
ConnectionEvent | 접속 관련의 이벤트의 소스에 관한 정보를 제공하는 Event 객체입니다. |
RowSetEvent | RowSet 객체에 이벤트가 발생했을 때에 생성되는 Event 객체입니다. |
StatementEvent | PooledConnection 에 등록된 모든 StatementEventListener 에,StatementEvent 가 송신됩니다. |
서버측의 데이터 소스 액세스와 JavaTM 프로그램 언어를 사용한 처리에 사용하는 API 를 제공합니다. 이 패키지는 java.sql
패키지의 추가이며, 버젼 1.4 이후의 Java Platform, Standard Edition (Java SETM)에 포함되어 있습니다. Java Platform, Enterprise Edition (Java EETM)에서는, 계속 주요 부분으로서 다루어집니다.
java.sql
패키지는, 다음의 API 를 제공합니다.
DriverManager
의 대체가 되는 DataSource
인터페이스
어플리케이션에서는 DataSource
API 와 RowSet
API 를 직접 사용합니다만, 접속 풀 API 와 분산 트랜잭션(transaction) API 는 중간층 인프라스트럭쳐(infrastructure)에 의해 내부적으로 사용됩니다.
DataSource
객체를 사용한 접속의 확립javax.sql
패키지에서는, 데이터 소스와의 접속을 확립하기 위한 최적인 방법을 제공하고 있습니다. 원의 기구인 DriverManager
클래스도 여전히 유효하고, 이 클래스를 사용한 코드도 계속해 실행할 수 있습니다. 다만,DriverManager
기구보다 많은 이점이 있기 (위해)때문에, 새로운 DataSource
기구를 사용하는 것을 추천 합니다.
접속을 확립할 때에 DataSource
를 사용하는 주된 이점을 듭니다.
DataSource
객체를 개입시켜 이용할 수 있습니다. DriverManager
을 개입시켜 확립된 접속에는, 접속 풀, 문장의 풀, 분산 트랜잭션(transaction)등의 기능이 없습니다.
드라이버의 벤더는 DataSource
의 구현을 제공합니다. 특정의 DataSource
객체는, 특정의 물리 데이터 소스를 나타냅니다. DataSource
객체가 작성하는 각 접속은, 그 물리 데이터 소스에의 접속이 됩니다.
데이터 소스의 논리명은, 일반적으로은 시스템 관리 책임자나 시스템 관리 책임자의 작업을 실시하는 사용자에 의해, Java Naming and Directory InterfaceTM (JNDI) API 를 사용하는 네임 서비스에 등록됩니다. 어플리케이션에서는, 등록되어 있는 논리명을 검색해, 필요한 DataSource
객체를 가져옵니다. 그리고, 취득한 DataSource
객체를 사용해, 이 객체가 나타내는 물리 데이터 소스에의 접속을 작성합니다.
DataSource
객체가 작성한 접속을 풀 해, 재사용하기 위해(때문에), 이 객체를, 중간층 인프라스트럭쳐(infrastructure)와 제휴해 동작하도록(듯이) 구현할 수가 있습니다. 이러한 DataSource
구현을 사용하는 어플리케이션은, 자동적으로, 접속 풀에 있는 접속을 가져옵니다. DataSource
객체가 작성한 접속을, 특별한 코딩을 하지 않고 분산 트랜잭션(transaction)로 사용하고 싶은 경우도, 이 객체를, 중간 인프라스트럭쳐(infrastructure)와 제휴해 동작하도록(듯이) 구현합니다.
DataSource
객체에 의해 작성된 접속은, 접속 풀에 추가됩니다. 새로운 접속의 작성은 매우 부하가 큰 작업이기 (위해)때문에, 이것에 의해 퍼포먼스가 비약적으로 향상합니다. 접속 풀에서는, 접속의 이용 및 재사용이 가능합니다. 그 때문에, 작성할 필요가 있는 신규 접속의 수는 큰폭으로 삭감됩니다.
접속 풀은 완전하게 투과적입니다. Java EE 의 구성의 중간층으로 자동적으로 행해져 어플리케이션의 관점으로부터는, 코드를 변경할 필요는 없습니다. 어플리케이션에서는 단지 DataSource.getConnection
메소드를 사용해 풀 된 접속을 취득해,Connection
객체를 사용하는 것과 같은 방법으로 사용합니다.
접속 풀에 사용되는 클래스와 인터페이스는 다음과 같습니다.
ConnectionPoolDataSource
PooledConnection
ConnectionEvent
ConnectionEventListener
StatementEvent
StatementEventListener
PooledConnection
객체를 작성하기 위해서 ConnectionPoolDataSource
객체가 불려 가면(자), 접속 풀 관리 프로그램에 의해 새로운 PooledConnection
객체가 ConnectionEventListener
객체로서 등록됩니다. 접속이 종료하는지, 에러가 발생했을 경우, 접속 풀 관리 프로그램 (청취자)은,ConnectionEvent
객체를 포함한 통지를 받습니다.
접속 풀 관리 프로그램이 PreparedStatements
용으로서 Statement
의 풀을 지원하는 경우 (지원할지 어떨지는,DatabaseMetaData.supportsStatementPooling
메소드를 호출하는 것으로 판단 가능), 접속 풀 관리 프로그램은, 자신을 StatementEventListener
객체로서 새로운 PooledConnection
객체에 등록합니다. PreparedStatement
가 닫는지, 에러가 발생했을 경우, 접속 풀 관리 프로그램 (청취자)은,StatementEvent
객체를 포함한 통지를 받습니다.
DataSource
객체에 의해 작성된 접속도, 분산 트랜잭션(transaction)에 참가하는 일이 있습니다. 이것에 의해, 어플리케이션은, 단일 트랜잭션(transaction)로 복수 서버상의 데이터 소스에 액세스 할 수 있게 됩니다.
분산 트랜잭션(transaction)에 사용되는 클래스와 인터페이스는 다음과 같습니다.
XADataSource
XAConnection
XAConnection
인터페이스는 PooledConnection
인터페이스로부터 파생하고 있기 (위해)때문에, 풀 된 접속에 적용되는 것은, 분산 트랜잭션(transaction)를 구성하는 접속에도 적용됩니다. 중간층의 트랜잭션(transaction) 매니저는, 모든 처리를 투과적으로 실시합니다. 어플리케이션 코드의 유일한 변경점은, 어플리케이션이 트랜잭션(transaction) 매니저의 트랜잭션(transaction) 처리를 방해할 수 없게 된 것입니다. 특히, 어플리케이션은,Connection.commit
메소드나 Connection.rollback
메소드를 호출할 수가 없습니다. 또, 접속을 자동 위탁 모드로 설정할 수도 있습니다. 즉,Connection.setAutoCommit(true)
를 호출할 수 없습니다.
어플리케이션은, 특별한 처리를 실시하는 일 없이 분산 트랜잭션(transaction)에 참가할 수 있습니다. 일반적으로 대로,DataSource.getConnection
메소드를 사용해, 사용하는 데이터 소스에의 접속을 작성하는 것만으로 끝납니다. 트랜잭션(transaction) 매니저는, 트랜잭션(transaction)를 배후에서 관리합니다. XADataSource
인터페이스는 XAConnection
객체를 작성해, 각 XAConnection
객체는 트랜잭션(transaction) 매니저가 접속을 관리하기 위해서 사용하는 XAResource
객체를 작성합니다.
RowSet
인터페이스는, 다른 다양한 클래스나 인터페이스와 함께 배후에서 동작합니다. 이러한 클래스나 인터페이스는 3 개의 카테고리로 나눌 수 있습니다.
RowSetListener
RowSet
객체는, JavaBeansTM 프로퍼티을 가져, JavaBeans 의 이벤트 통지 기구에 참가하고 있기 (위해)때문에, JavaBeans 의 컴퍼넌트이다고 말할 수 있습니다. RowSetListener
인터페이스는, 특정의 RowSet
객체에 발생하는 이벤트를 통지받고 싶은 컴퍼넌트에 의해 구현됩니다. 그러한 컴퍼넌트는,RowSet.addRowSetListener
메소드를 사용해, 자신을 청취자로서 행 세트에 등록합니다.
RowSet
객체가 1 행을 변경, 전행을 변경, 또는 커서 위치를 이동하면(자), 이 객체에 등록된 각 청취자에게도 통지됩니다. 청취자는, 통지 메소드의 구현을 호출하는 것에 의해 실행합니다.
RowSetEvent
RowSet
객체는 RowSetEvent
의 인스턴스를 작성해 청취자에게 건네줍니다. 청취자는 건네받은 RowSetEvent
객체를 사용해, 어느 행 세트에 이벤트가 있는지를 검출할 수 있습니다.
RowSetMetaData
ResultSetMetaData
인터페이스로부터 파생하고 있어,RowSet
객체의 열에 관한 정보를 제공합니다. 어플리케이션에서는 RowSetMetaData
메소드를 사용해, 행 세트에 포함되는 렬수나 각 열에 포함할 수가 있는 데이터의 종류를 검출할 수 있습니다.
RowSetMetaData
인터페이스는 열에 관한 정보를 설정하는 메소드를 제공합니다만, 일반적으로, 어플리케이션이 이러한 메소드를 사용할 것은 없습니다. 어플리케이션이 RowSet
의 execute
메소드를 호출하면(자),RowSet
객체는 행의 새로운 세트를 포함해,RowSetMetaData
객체는 내부적으로 갱신되어, 새로운 열에 관한 정보를 포함하게 됩니다.
RowSetInternal
인터페이스를 구현하는 RowSet
객체는, 관련하는 RowSetReader
객체를 호출하는 것으로, 자신에게 데이터를 읽어들일 수가 있습니다. 또, 관련하는 RowSetWriter
를 호출해, 행에 가세한 변경을, 데이터를 취득한 장소로부터 데이터 소스에 써 되돌릴 수가 있습니다. 계속 데이터 소스에 접속되고 있는 행 세트는, 데이터 소스상에서 직접 동작하므로, 리더나 라이터를 사용할 필요는 없습니다.
RowSetInternal
RowSetInternal
인터페이스를 구현하는 것으로,RowSet
객체에서는 내부 상태에 액세스 하거나 리더나 라이터를 호출하거나 할 수 있게 됩니다. 행 세트는 현재의 행의 값과 원의 값으로 해서 참조되는, 현재의 행의 직전에 있는 행의 값을 추적합니다. 행 세트는, (1) 커멘드용으로 설정된 파라미터와(2) 행 세트에게 건네진 접속 (존재하는 경우)도 추적합니다. 행 세트는 RowSetInternal
메소드를 배후에서 사용하는 것으로 이러한 정보에 액세스 합니다. 어플리케이션이 이러한 메소드를 직접 호출하는 것은 일반적으로 없습니다.
RowSetReader
RowSetInternal
인터페이스를 구현하는, 절단 된 RowSet
객체는 리더 (RowSet 객체에 관련지을 수 있었던 RowSetReader
객체)를 호출해, 데이터를 자신에게 읽어들일 수가 있습니다. 어플리케이션이 RowSet.execute
메소드를 호출하면(자), 이 메소드가 행 세트의 리더를 호출해, 대부분의 작업을 실시합니다. 리더의 구현은 다양합니다만, 일반적으로는, 데이터 소스에의 접속을 확립해, 데이터 소스로부터 데이터를 읽어들여, 그 데이터를 행 세트에 추가해, 접속을 닫습니다. 또, 리더는 그 행 세트용으로 RowSetMetaData
객체를 갱신하는 일도 있습니다. 행 세트의 내부 상태도, 리더에 의해, 또는 직접 RowSet.execute
메소드에 의해 갱신됩니다.
RowSetWriter
RowSetInternal
인터페이스를 구현하는, 절단 된 RowSet
객체는, 라이터 (RowSet 객체에 관련지을 수 있었던 RowSetWriter
객체)를 호출해, 변경을 부하의 데이터 소스에 써 되돌릴 수가 있습니다. 라이터의 구현은 다양합니다만, 일반적으로는 다음과 같이 동작합니다.
RowSet
인터페이스는 많은 방법으로 구현할 수 있어 누구나가 구현을 작성할 수 있습니다. 개발자는 자유롭게 상상력을 일하게 해 행 세트의 새로운 사용 방법을 찾아내는 것이 추천 되고 있습니다.
중요: 「도입된 버젼: 1.6」(이)라고 표시된 API 를 사용하는 코드는, JDBC 4.0 API 를 구현하는 JDBC 테크놀러지 드라이버를 사용해 실행할 필요가 있습니다. 사용하는 특정의 기능이 드라이버에 구현되고 있는지 어떤지를, 드라이버의 문서로 확인해 주세요.
javax.sql
패키지의 클래스나 인터페이스에 관한 상세한 정보를 참조할 수 있습니다.
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 패키지 다음의 패키지 | 프레임 있어 프레임 없음 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.