JavaTM Platform
Standard Ed. 6

javax.sql.rowset
인터페이스 Joinable

기존의 서브 인터페이스의 일람:
CachedRowSet , FilteredRowSet , JdbcRowSet , JoinRowSet , WebRowSet


public interface Joinable

1.0 배경

Joinable 인터페이스는, 일치열의 취득과 설정의 메소드를 제공합니다. 이것은 RowSet 객체를 JoinRowSet 객체에 추가하는 것에 의해 형성되는 SQL JOIN 의 형성의 기초가 됩니다.  

표준 RowSet 구현은,JoinRowSet 객체에 추가하기 위해서,Joinable 인터페이스를 구현할 수 있습니다. 이 인터페이스를 구현하면(자),RowSet 객체로, 일치열의 설정, 취득, 정보의 취득을 할 수 있는 Joinable 메소드를 사용할 수 있게 됩니다. 어플리케이션은 Joinable 인터페이스를 구현하고 있지 않는 RowSet 객체를 JoinRowSet 객체에 추가할 수 있습니다만, 이 때문에는,RowSet 객체와 일치열의 양쪽 모두, 또는 RowSet 객체의 배열과 일치열의 배열의 양쪽 모두를 취하는 몇개의 JoinRowSet.addRowSet 메소드를 사용할 필요가 있습니다.  

Joinable 인터페이스의 메소드에 액세스 하려면 ,RowSet 객체로 5 개의 표준 RowSet 인터페이스의 쳐 적어도 1 개의 인터페이스를 구현해, 한층 더 Joinable 인터페이스도 구현합니다. 또, 대부분의 RowSet 객체는 BaseRowSet 클래스를 확장합니다. 다음에 예를 나타냅니다.

     class MyRowSetImpl extends BaseRowSet implements CachedRowSet, Joinable {
         :
         :
     }
 

2.0 용법의 가이드 라인

Joinable 인터페이스내의 메소드로,RowSet 객체는, 일치열 (SQL JOIN 의 베이스가 되는 열)의 설정, 일치열의 취득, 또는 일치열의 설정 해제를 실시합니다. 이러한 메소드를 구현하는 클래스의 인스턴스를 JoinRowSet 객체에 추가하는 것으로, SQL JOIN 관계를 확립할 수 있습니다.  

     CachedRowSet crs = new MyRowSetImpl();
     crs.populate((ResultSet) rs);
     (Joinable) crs.setMatchColumnIndex(1);

     JoinRowSet jrs = new JoinRowSetImpl();
     jrs.addRowSet(crs);
 
상기의 예에서는,crsJoinable 인터페이스를 구현한 CachedRowSet 객체입니다. 다음의 예의 crs2Joinable 인터페이스를 구현하고 있지 않기 때문에,addRowSet 메소드의 인수로서 일치열을 지정할 필요가 있습니다. 이 예에서는, 열 1 을 일치열로 하고 있습니다.
     CachedRowSet crs2 = new MyRowSetImpl();
     crs2.populate((ResultSet) rs);
     
     JoinRowSet jrs2 = new JoinRowSetImpl();
     jrs2.addRowSet(crs2, 1);
 

JoinRowSet 인터페이스의 이용에 의해, 단일의 표에 정리된 1 개(살) 이상의 RowSet 객체로부터 데이터를 취득할 수 있게 됩니다. 이 때, 데이타베이스와의 접속을 작성할 필요는 없습니다. 그 때문에, 미접속의 RowSet 객체로 사용하는 것에 적합합니다. 그런데도, 접속하고 있을지 어떨지에 관계없이, 모든 RowSet 객체가 이 인터페이스를구현할 수 있습니다. 항상 데이터 소스에 접속되고 있는 JdbcRowSet 객체는,JoinRowSet 객체에 포함하지 않아도, 직접 SQL JOIN 에 포함할 수가 있습니다.  

3.0 복수의 일치열의 관리

setMatchColumn 메소드에게 건네지는 인덱스 배열은, 설정되는 일치열의 수 (배열의 길이)와 매칭에 사용되는 열을 나타냅니다. 다음에 예를 나타냅니다.
     int[] i = {1, 2, 4, 7}; // indicates four match columns, with column
                             // indexes 1, 2, 4, 7 participating in the JOIN.
     Joinable.setMatchColumn(i);
 
후속의 일치열은, 다음과 같이 다른 Joinable 객체 (Joinable 인터페이스를 구현하고 있는 RowSet 객체)에 추가할 수 있습니다.
     int[] w = {3, 2, 5, 3};
     Joinable2.setMatchColumn(w);
 
복수의 RowSet 객체를 JoinRowSet 객체에 추가할 때, 배열 인덱스의 순서는 특히 중요합니다. 배열의 각 인덱스는, 이전에 추가한 RowSet 객체의 대응하는 인덱스와 직접 대응합니다. 오버랩이나 언더 랩이 발생했을 경우, 일치열의 데이터는,Joinable 를 구현한 RowSet 가 추가된 이벤트내에 보관 유지되어 일치열데이터에 관련지을 필요가 있습니다. 따라서, 어플리케이션은, 복수의 일치열을 임의의 차례로 설정할 수 있습니다만, 이 차례는 SQL JOIN 의 결과에 직접 영향을 미칩니다.  

이것은, 일치열을 나타내기 위해서(때문에) 열인덱스는 아니고 렬명을 사용하는 경우에도 완전히 같습니다.

관련 항목:
JoinRowSet

메소드의 개요
 int[] getMatchColumnIndexes ()
          setMatchColumn(int[] columnIdxes) 메소드를 사용해, 이 RowSet 객체로 설정된 일치열의 인덱스를 가져옵니다.
 String [] getMatchColumnNames ()
          setMatchColumn(String [] columnNames) 메소드를 사용해, 이 RowSet 객체로 설정된 일치열의 이름을 가져옵니다.
 void setMatchColumn (int columnIdx)
          지정된 열을 이 RowSet 객체의 일치열로서 설정합니다.
 void setMatchColumn (int[] columnIdxes)
          지정된 열을 이 RowSet 객체의 일치열로서 설정합니다.
 void setMatchColumn (String  columnName)
          지정된 열을 이 RowSet 객체의 일치열로서 설정합니다.
 void setMatchColumn (String [] columnNames)
          지정된 열을 이 RowSet 객체의 일치열로서 설정합니다.
 void unsetMatchColumn (int columnIdx)
          이 RowSet 객체의 일치열로서 지정된 열의 설정을 해제합니다.
 void unsetMatchColumn (int[] columnIdxes)
          이 RowSet 객체의 일치열로서 지정된 열의 설정을 해제합니다.
 void unsetMatchColumn (String  columnName)
          이 RowSet 객체의 일치열로서 지정된 열의 설정을 해제합니다.
 void unsetMatchColumn (String [] columnName)
          이 RowSet 객체의 일치열로서 지정된 열의 설정을 해제합니다.
 

메소드의 상세

setMatchColumn

void setMatchColumn(int columnIdx)
                    throws SQLException 
지정된 열을 이 RowSet 객체의 일치열로서 설정합니다. JoinRowSet 객체는, 일치열에 근거해, 이 RowSet 객체를 추가할 수 있습니다.  

CachedRowSetTM 등의 서브 인터페이스는 CachedRowSet.setKeyColumns 메소드를 정의합니다. 이 메소드를 사용해, 특정의 열에 주키의 시멘틱스를 적용할 수 있습니다. setMatchColumn(int columnIdx) 메소드의 구현에서는,CachedRowSet 객체로 주키열을 일치열로서 설정할 경우에, 키열의 제약을 유지할 필요가 있습니다.

파라미터:
columnIdx - 일치열로서 설정된다 열의 인덱스를 나타내는 int
예외:
SQLException - 무효인 열인덱스가 설정되었을 경우
관련 항목:
setMatchColumn(int[]) , unsetMatchColumn(int)

setMatchColumn

void setMatchColumn(int[] columnIdxes)
                    throws SQLException 
지정된 열을 이 RowSet 객체의 일치열로서 설정합니다. JoinRowSet 객체는, 일치열에 근거해, 이 RowSet 객체를 추가할 수 있습니다.

파라미터:
columnIdxes - 일치열로서 설정되는 열의 인덱스를 나타내는 int 의 배열
예외:
SQLException - 무효인 열인덱스가 설정되었을 경우
관련 항목:
setMatchColumn(int[]) , unsetMatchColumn(int[])

setMatchColumn

void setMatchColumn(String  columnName)
                    throws SQLException 
지정된 열을 이 RowSet 객체의 일치열로서 설정합니다. JoinRowSet 객체는, 일치열에 근거해, 이 RowSet 객체를 추가할 수 있습니다.  

CachedRowSet 인터페이스등의 서브 인터페이스는 CachedRowSet.setKeyColumns 메소드를 정의합니다. 이 메소드를 사용해, 특정의 열에 주키의 시멘틱스를 적용할 수 있습니다. setMatchColumn(String columnIdx) 메소드의 구현에서는,CachedRowSet 객체로 주키열을 일치열로서 설정할 경우에, 키열의 제약을 유지할 필요가 있습니다.

파라미터:
columnName - 일치열로서 설정되는 열의 이름을 지정하는 String 객체
예외:
SQLException - 무효인 렬명이 설정되었을 경우, 렬명이 null 의 경우, 또는 렬명이 공문자열의 경우
관련 항목:
unsetMatchColumn(int) , setMatchColumn(int[])

setMatchColumn

void setMatchColumn(String [] columnNames)
                    throws SQLException 
지정된 열을 이 RowSet 객체의 일치열로서 설정합니다. JoinRowSet 객체는, 일치열에 근거해, 이 RowSet 객체를 추가할 수 있습니다.

파라미터:
columnNames - 일치열로서 설정되는 열의 이름을 지정하는 String 객체의 배열
예외:
SQLException - 무효인 렬명이 설정되었을 경우, 렬명이 null 의 경우, 또는 렬명이 공문자열의 경우
관련 항목:
unsetMatchColumn(int) , setMatchColumn(int[])

getMatchColumnIndexes

int[] getMatchColumnIndexes()
                            throws SQLException 
setMatchColumn(int[] columnIdxes) 메소드를 사용해, 이 RowSet 객체로 설정된 일치열의 인덱스를 가져옵니다.

반환값:
RowSet 객체의 일치열로서 설정된 열의 인덱스를 나타내는 int 배열
예외:
SQLException - 일치열이 설정되어 있지 않은 경우
관련 항목:
setMatchColumn(int) , unsetMatchColumn(int)

getMatchColumnNames

String [] getMatchColumnNames()
                             throws SQLException 
setMatchColumn(String [] columnNames) 메소드를 사용해, 이 RowSet 객체로 설정된 일치열의 이름을 가져옵니다.

반환값:
RowSet 객체의 일치열로서 설정된 열의 이름을 지정하는 String 객체의 배열
예외:
SQLException - 일치열이 설정되어 있지 않은 경우
관련 항목:
setMatchColumn(int) , unsetMatchColumn(int)

unsetMatchColumn

void unsetMatchColumn(int columnIdx)
                      throws SQLException 
RowSet 객체의 일치열로서 지정된 열의 설정을 해제합니다.  

Joinable 인터페이스를 구현하는 RowSet 객체는, 지정된 렬상에서 CachedRowSet.unsetKeyColumns 메소드가 불려 갈 때까지 키와 같은 제약이 실시되는 것을 보증할 필요가 있습니다.

파라미터:
columnIdx - 일치열로서의 설정이 해제되는 열의 인덱스를 나타내는 int
예외:
SQLException - 무효인 열인덱스가 지정되었을 경우, 또는 지정된 열이 이전에 일치열로서 설정되어 있지 않은 경우
관련 항목:
setMatchColumn(int)

unsetMatchColumn

void unsetMatchColumn(int[] columnIdxes)
                      throws SQLException 
RowSet 객체의 일치열로서 지정된 열의 설정을 해제합니다.

파라미터:
columnIdxes - 일치열로서의 설정이 해제되는 열의 인덱스를 나타내는 int 의 배열
예외:
SQLException - 무효인 열인덱스가 지정되었을 경우, 또는 지정된 열이 이전에 일치열로서 설정되어 있지 않은 경우
관련 항목:
setMatchColumn(int)

unsetMatchColumn

void unsetMatchColumn(String  columnName)
                      throws SQLException 
RowSet 객체의 일치열로서 지정된 열의 설정을 해제합니다.  

Joinable 인터페이스를 구현하는 RowSet 객체는, 지정된 렬상에서 CachedRowSet.unsetKeyColumns 메소드가 불려 갈 때까지 키와 같은 제약이 실시되는 것을 보증할 필요가 있습니다.

파라미터:
columnName - 일치열로서의 설정이 해제되는 열의 이름을 지정하는 String 객체
예외:
SQLException - 무효인 렬명이 지정되었을 경우, 또는 지정된 열이 이전에 일치열로서 설정되어 있지 않은 경우
관련 항목:
setMatchColumn(int)

unsetMatchColumn

void unsetMatchColumn(String [] columnName)
                      throws SQLException 
RowSet 객체의 일치열로서 지정된 열의 설정을 해제합니다.

파라미터:
columnName - 일치열로서의 설정이 해제되는 열의 이름을 지정하는 String 객체의 배열
예외:
SQLException - 무효인 렬명이 지정되었을 경우, 또는 지정된 열이 이전에 일치열로서 설정되어 있지 않은 경우
관련 항목:
setMatchColumn(int)

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.