|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
java.lang.Objectjavax.sql.rowset.spi.SyncProvider
public abstract class SyncProvider
미접속의 RowSet
객체의 읽어내/기입 기능을 제공하는 동기기구입니다. SyncProvider 구현은,SyncProvider
abstract 클래스를 확장하는 클래스입니다.
SyncProvider
구현은, 일의의 ID (이 구현의 완전 수식 클래스명)로 식별됩니다. 이 이름을 SyncFactory
SPI 에 등록해, 모든 RowSet
구현으로 사용할 수 있도록(듯이) 할 필요가 있습니다. 이 레퍼런스 구현의 팩토리 기구는, 이 이름을 사용해 구현을 인스턴스화합니다. 이것에 의해,RowSet
객체와 그 리더 (javax.sql.RowSetReader
객체) 및 라이터 (javax.sql.RowSetWriter
객체)를 제공할 수 있습니다.
JDBC RowSet
구현 스펙에서는,SyncProvider
abstract 클래스의 2 개의 레퍼런스 구현 (RIOptimisticProvider
와 RIXMLProvider
)을 제공하고 있습니다. RIOptimisticProvider 는 RowSetReader
객체와 RowSetWriter
객체에 의해, 모든 RowSet
구현을 설정할 수 있습니다. 다만,XmlReader
객체와 XmlWriter
객체를 설정할 수 있는 것은,RIXMLProvider
구현 뿐입니다. WebRowSet
객체는 XmlReader
객체를 사용해, XML 형식에서 데이터를 읽어내, 데이터를 자신에게 포함합니다. 또,XmlWriter
객체를 사용해, 자신을 XML 형식에서 스트림 또는 java.io.Writer
객체에 자신을 기입합니다.
SyncProvider
구현의 명명시에는, 다음의 항목을 고려할 필요가 있습니다.
SyncProvider
구현의 이름은 완전 수식 클래스명
SyncProvider
구현을 providers
라는 이름의 패키지에 포함해 제공한다 (추천)
예를 들어, Fred, Inc. (이)라는 이름의 벤더가 제공하는 SyncProvider
구현의 경우, 다음과 같이 됩니다.
Vendor name:Fred, Inc. Domain name of vendor: com.fred Package name: com.fred.providers SyncProvider implementation class name: HighAvailabilityProvider Fully qualified class name of SyncProvider implementation: com.fred.providers.HighAvailabilityProvider
다음의 예에서는, 완전 수식명을 사용해, 이 구현을 SyncFactory
의 정적 인스턴스에 등록합니다.
SyncFactory.registerProvider( "com.fred.providers.HighAvailabilityProvider");
레퍼런스 구현에 의해 제공되는 디폴트의 SyncProvider
객체는, 다음의 이름을 사용합니다.
com.sun.rowset.providers.RIOptimisticProvider
SyncProvider
구현 클래스명을 Sun Microsystems, Inc. 에 등록하고 싶은 벤더는, jdbc@sun.com 까지 전자 메일에서 연락해 주십시오. Sun 는,RowSet
준거 구현으로 사용할 수 있는 SyncProvider
구현의 일람을 데이타베이스로 관리하고 있습니다. 이 데이타베이스는, 사용 가능한 JDBC 드라이버의 데이타베이스와 자주(잘) 닮았습니다.
벤더는, 레퍼런스 구현 동기 프로바이더를 참조해, 새로운 SyncProvider
구현의 구현 방법의 상세를 확인해 주세요.
RowSet
객체가 프로바이더를 취득하는 순서Rowset
객체는, 다음의 몇개의 방법으로,SyncProvider
객체의 액세스를 취득할 수 있습니다.
CachedRowSet crs = new CachedRowSet( "com.fred.providers.HighAvailabilitySyncProvider");
setSyncProvider
메소드를 사용
CachedRowSet crs = new CachedRowSet(); crs.setSyncProvider("com.fred.providers.HighAvailabilitySyncProvider");
Java 플랫폼에서는, 디폴트로,RowSet
동기 프로바이더의 레퍼런스 구현을 항상 사용할 수 있습니다. 그 외의 플러그 인 가능한 동기 프로바이더가 정상적으로 등록되지 않은 경우,SyncFactory
는 자동적으로 디폴트의 SyncProvider
레퍼런스 구현의 인스턴스를 생성합니다. 이 때문에, 상기의 코드의 발췌에서는,SyncFactory
인스턴스에 com.fred.providers.HighAvailabilitySyncProvider
라는 이름의 구현이 등록되지 않은 경우,crs 에는, 레퍼런스 구현내의 디폴트의 프로바이더 com.sun.rowset.providers.RIOptimisticProvider
를 할당할 수 있습니다.
RowSet
객체와 데이터 소스간의 갱신이 원의 쿼리또는 부하의 데이터 소스의 제약에 위반했을 경우, 미접속의 모든 RowSet
구현과 지정된 SyncProvider
구현의 동작은 예측 불능이 됩니다. 이와 같이, 위반이 있었을 때의 동작을 정의하지 않는 것으로,SyncProvider
구현은, 최선의 대처 방법을 독자적으로 결정할 수가 있습니다.
SyncProvider
구현은, 쿼리위반의 부분집합을 처리하는 핸들러를 구현할 수가 있습니다. 그러나,SyncProvider
구현으로 원의 쿼리위반 또는보다 일반적인 데이터 소스 제약 위반이 처리되지 않는 경우, 모든 SyncProvider
객체는 SyncProviderException
을 throw 할 필요가 있습니다.
RowSet
객체는, SQL VIEW
를 기본으로 작성된 SQL 쿼리로부터 이식 가능합니다. 그러나, 많은 경우, 갱신은 부하의 뷰에 대해서 실행되므로, 추가로서 각종 메타데이타가 필요하게 됩니다. SyncProvider
클래스는, 구현이 SQL VIEW
의 갱신을 지원할지 어떨지를 나타내는 2 개의 정수를 제공합니다.
NONUPDATABLE_VIEW_SYNC
- SyncProvider
구현은, 부하의 RowSet
객체의 데이터 소스로서 SQL VIEW
와의 동기를 지원하지 않는다
UPDATABLE_VIEW_SYNC
- SyncProvider
구현은, 부하의 데이터 소스로서 SQL VIEW
와의 동기를 지원한다
SQL VIEW
의 데이터가 이식되었을 경우, 디폴트로,RowSet
객체는 갱신 불능이 됩니다.
SyncProvider
정수SyncProvider
클래스는,SyncProvider
메소드의 반환값 또는 파라미터로서 사용되는 3 개의 정수를 제공합니다. SyncProvider
객체를 구현해,RowSet
객체와 그 부하의 데이터 소스를 다양한 레벨로 동기 할 수가 있습니다. 최초의 정수 그룹은, 동기의 처리 방법을 나타냅니다. 예를 들어,GRADE_NONE
는,SyncProvider
객체가 유효한 데이터인지를 확인하지 않고, 단순하게 RowSet
데이터를 데이터 소스에 기입하는 것을 나타냅니다. GRADE_MODIFIED_AT_COMMIT
는, 프로바이더에 의해, 변경된 데이터만을 대상으로 타당성 검사를 하는 것을 나타냅니다. 이 외 , 모든 데이터의 타당성 검사를 실시하는 그레이드나, 데이터가 변경 또는 로드 되었을 때 락을 적용하는 그레이드가 있습니다.
SyncProvider
객체의 동기의 그레이드를 나타내는 정수
SyncProvider
객체가 SQL VIEW
의 갱신을 실행할 수 있을지 어떨지를 나타내는 정수
SyncFactory
,
SyncFactoryException
필드의 개요 | |
---|---|
static int |
DATASOURCE_DB_LOCK
이 SyncProvider 객체를 사용하고 있는 RowSet 객체의 데이터 소스가 되어 있는 데이터 전체에 락이 설정되는 것을 나타냅니다. |
static int |
DATASOURCE_NO_LOCK
원래의 데이터 소스상에 락이 보관 유지되지 않는 것을 나타냅니다. |
static int |
DATASOURCE_ROW_LOCK
이 SyncProvider 객체를 사용하고 있는 RowSet 객체의 이식에 사용된 원의 SQL 문의 영향을 받는 행에 락이 설정되는 것을 나타냅니다. |
static int |
DATASOURCE_TABLE_LOCK
이 SyncProvider 객체를 사용하고 있는 RowSet 객체의 이식에 사용된 원의 SQL 문의 영향을 받는 모든 테이블에 락이 설정되는 것을 나타냅니다. |
static int |
GRADE_CHECK_ALL_AT_COMMIT
원래의 데이터 소스의 고레벨의 오프티미스틱 병행 동기의 그레이드를 나타냅니다. |
static int |
GRADE_CHECK_MODIFIED_AT_COMMIT
원래의 데이터 소스의 저레벨의 오프티미스틱 병행 동기의 그레이드를 나타냅니다. |
static int |
GRADE_LOCK_WHEN_LOADED
원래의 데이터 소스의 염세적인 병행 동기의 그레이드를 나타냅니다. |
static int |
GRADE_LOCK_WHEN_MODIFIED
원래의 데이터 소스의 염세적인 병행 동기의 그레이드를 나타냅니다. |
static int |
GRADE_NONE
원의 데이터 소스와의 동기가 일절 행해지지 않는 것을 나타냅니다. |
static int |
NONUPDATABLE_VIEW_SYNC
SyncProvider 구현이 RowSet 객체와 그 이식에 사용된 SQL VIEW 간의 동기를 지원하지 않는것을 나타냅니다. |
static int |
UPDATABLE_VIEW_SYNC
SyncProvider 구현이 RowSet 객체와 그 이식에 사용된 SQL VIEW 간의 동기를 지원하는 것을 나타냅니다. |
생성자 의 개요 | |
---|---|
SyncProvider ()
디폴트의 SyncProvider 객체를 작성합니다. |
메소드의 개요 | |
---|---|
abstract int |
getDataSourceLock ()
이 SyncProvider 구현내에서 현재 사용되고 있는 데이터 소스 락의 레벨을 돌려줍니다. |
abstract int |
getProviderGrade ()
이 SyncProvider 객체가 RowSet 객체에 제공할 수 있는 동기의 그레이드를 나타내는 정수를 돌려줍니다. |
abstract String |
getProviderID ()
이 SyncProvider 객체를 나타내는 일의의 식별자를 돌려줍니다. |
abstract RowSetReader |
getRowSetReader ()
javax.sql.RowSetReader 객체를 돌려줍니다. |
abstract RowSetWriter |
getRowSetWriter ()
javax.sql.RowSetWriter 객체를 돌려줍니다. |
abstract String |
getVendor ()
이 SyncProvider 인스턴스의 벤더명을 돌려줍니다. |
abstract String |
getVersion ()
이 SyncProvider 인스턴스의 릴리스 버젼을 돌려줍니다. |
abstract void |
setDataSourceLock (int datasource_lock)
부하의 데이터 소스에,datasource_lock 로 지정된 레벨의 락을 설정합니다. |
abstract int |
supportsUpdatableView ()
이 SyncProvider 구현이 RowSet 객체와 이 RowSet 객체가 데이터의 취득처로서 사용하는 데이터 소스내의 SQL VIEW 의 동기의 실행이 가능한가 어떤가를 돌려줍니다. |
클래스 java.lang. Object 로부터 상속된 메소드 |
---|
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
필드의 상세 |
---|
public static int GRADE_NONE
SyncProvider
구현은,RowSet
객체내의 갱신 내용을, 데이터의 타당성 검사를 실시하지 않고 부하의 데이터 소스에 기입합니다.
public static int GRADE_CHECK_MODIFIED_AT_COMMIT
SyncProvider
구현은, 변경된 행만을 체크합니다.
public static int GRADE_CHECK_ALL_AT_COMMIT
SyncProvider
구현은, 변경되어 있지 않은 것도 포함해 모든 행을 체크합니다.
public static int GRADE_LOCK_WHEN_MODIFIED
SyncProvider
구현은, 원래의 데이터 소스내의 행을 잠급니다.
public static int GRADE_LOCK_WHEN_LOADED
SyncProvider
구현은,RowSet
객체의 이식에 사용된 원의 문장의 영향을 받는 뷰 및 테이블, 또는 그 어느쪽이든 전체를 잠급니다.
public static int DATASOURCE_NO_LOCK
SyncProvider
구현의 디폴트의 락 설정입니다.
public static int DATASOURCE_ROW_LOCK
SyncProvider
객체를 사용하고 있는 RowSet
객체의 이식에 사용된 원의 SQL 문의 영향을 받는 행에 락이 설정되는 것을 나타냅니다.
public static int DATASOURCE_TABLE_LOCK
SyncProvider
객체를 사용하고 있는 RowSet
객체의 이식에 사용된 원의 SQL 문의 영향을 받는 모든 테이블에 락이 설정되는 것을 나타냅니다.
public static int DATASOURCE_DB_LOCK
SyncProvider
객체를 사용하고 있는 RowSet
객체의 데이터 소스가 되어 있는 데이터 전체에 락이 설정되는 것을 나타냅니다.
public static int UPDATABLE_VIEW_SYNC
SyncProvider
구현이 RowSet
객체와 그 이식에 사용된 SQL VIEW
간의 동기를 지원하는 것을 나타냅니다.
public static int NONUPDATABLE_VIEW_SYNC
SyncProvider
구현이 RowSet
객체와 그 이식에 사용된 SQL VIEW
간의 동기를 지원하지 않는것을 나타냅니다.
생성자 의 상세 |
---|
public SyncProvider()
SyncProvider
객체를 작성합니다.
메소드의 상세 |
---|
public abstract String getProviderID()
SyncProvider
객체를 나타내는 일의의 식별자를 돌려줍니다.
SyncProvider
객체의
완전 수식 클래스명을 가지는 String
객체public abstract RowSetReader getRowSetReader()
javax.sql.RowSetReader
객체를 돌려줍니다. 이 객체는,RowSet
객체에 데이터를 이식하기 위해서 사용할 수 있습니다.
javax.sql.RowSetReader
객체public abstract RowSetWriter getRowSetWriter()
javax.sql.RowSetWriter
객체를 돌려줍니다. 이 객체는,RowSet
객체의 데이터를 부하의 데이터 소스에 재차 기입하기 위해서(때문에) 사용할 수 있습니다.
javax.sql.RowSetWriter
객체public abstract int getProviderGrade()
SyncProvider
객체가 RowSet
객체에 제공할 수 있는 동기의 그레이드를 나타내는 정수를 돌려줍니다.
public abstract void setDataSourceLock(int datasource_lock) throws SyncProviderException
SyncProvider
는, 동기 처리를 정상적으로 완료할 수 있도록(듯이) 오프티미스틱인 레벨 (낙관도)을 조절해, 그 동작을 조정합니다.
datasource_lock
- 필요한 데이터 소스 락의 중요도 레벨을 나타낸다
다음의 몇개의 정수.
SyncProvider.DATASOURCE_NO_LOCK, SyncProvider.DATASOURCE_ROW_LOCK, SyncProvider.DATASOURCE_TABLE_LOCK, SyncProvider.DATASOURCE_DB_LOCK
SyncProviderException
- 설정된 데이터 소스 락의 레벨이 지원되어 있지 않은 경우getDataSourceLock()
public abstract int getDataSourceLock() throws SyncProviderException
SyncProvider
구현내에서 현재 사용되고 있는 데이터 소스 락의 레벨을 돌려줍니다.
SyncProvider
객체로 현재 사용되고 있다
데이터 소스 락의 레벨을 나타내는 정수.
다음의 언젠가된다.
SyncProvider.DATASOURCE_NO_LOCK, SyncProvider.DATASOURCE_ROW_LOCK, SyncProvider.DATASOURCE_TABLE_LOCK, SyncProvider.DATASOURCE_DB_LOCK
SyncProviderExceptiom
- 데이터 소스 락의 레벨의 결정시에 에러가 발생했을 경우
SyncProviderException
setDataSourceLock(int)
public abstract int supportsUpdatableView()
SyncProvider
구현이 RowSet
객체와 이 RowSet
객체가 데이터의 취득처로서 사용하는 데이터 소스내의 SQL VIEW
의 동기의 실행이 가능한가 어떤가를 돌려줍니다.
SyncProvider
객체가 SQL VIEW
의 갱신을
지원할지 어떨지를 나타내는 int
.
다음의 언젠가된다.
SyncProvider.UPDATABLE_VIEW_SYNC,
SyncProvider.NONUPDATABLE_VIEW_SYNCpublic abstract String getVersion()
SyncProvider
인스턴스의 릴리스 버젼을 돌려줍니다.
SyncProvider
구현의
릴리스 버젼을 나타내는 String
public abstract String getVendor()
SyncProvider
인스턴스의 벤더명을 돌려줍니다.
SyncProvider
구현의
벤더명을 나타내는 String
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세 : 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.