클래스 com.ibm.etools.xmltosql.XMLToSQL

java.lang.Object
                com.ibm.etools.xmltosql.XMLToSQL

public 클래스 XMLToSQL은 오브젝트를 확장합니다.

XMLToSQL은 XML 문서를 사용하는 데이터베이스 테이블에 행을 삽입, 갱신 또는 삭제하는 데 사용됩니다. XML 구조 대 테이블 구조 간의 맵핑은 단순 맵핑 규칙 설정에 따릅니다. 다음 XML 단편은 맵핑 규칙을 설명합니다.

   <rootElement>
     <EMPLOYEE>
       <FIRSTNAME>CHRISTINE</FIRSTNAME>
       <LASTNAME>HAAS</LASTNAME>
     </EMPLOYEE>
     <EMPLOYEE>
       <FIRSTNAME>MICHAEL</FIRSTNAME>
       <LASTNAME>THOMPSON</LASTNAME>
     </EMPLOYEE> 
     ...
   </rootElement>

올바른 XML 문서 작성 방법은 우선 SQLToXML 라이브러리를 사용하여 XML 문서를 생성한 다음 문서 수정 시 새 값을 제공하여 갱신하는 것입니다. 또한 XMLto SQL 마법사를 사용하여 XMLToSQL 라이브러리를 사용하는 코드를 작성하기 전에 XML 문서의 유효성을 단위 테스트할 수도 있습니다.

표 1. 생성자 색인
생성자 설명
XMLToSQL(SQLProperties) 이것이 유일한 생성자입니다.
표 2. 메소드 색인
메소드 설명
void addToKeyColumns(String) UPDATE 또는 DELETE에 대한 where 절을 빌드하는 데 사용되는 키 열 이름 목록에 추가합니다.
void addToUpdateColumns(String) 갱신 또는 삽입되는 열 이름 목록에 추가합니다.
void execute(Document, Boolean) DOM 문서에서 테이블을 갱신합니다.
void execute(InputStream) XML 입력 스트림에서 테이블을 갱신합니다.
void execute(InputStream, Boolean) XML 입력 스트림에서 테이블을 갱신합니다.
void execute(String) XML 파일에서 테이블을 갱신합니다.
void execute(String, Boolean) XML 파일에서 테이블을 갱신합니다.
void finalize() 이것이 내부적으로 작성되는 경우 연결을 닫습니다.
Vector getFailedStatements() 실행 중 실패한 SQL 문의 콜렉션을 리턴합니다.
String getTableName(InputStream) 갱신될 데이터베이스 테이블 이름을 리턴합니다.
String getTableName(String) 갱신될 데이터베이스 테이블 이름을 리턴합니다.
void setConnection(Connection) 테이블 갱신에 사용될 JDBC 연결을 제공합니다.
void setTrace(Boolean) 추적 플래그를 설정합니다.
void setTrace(Boolean, PrintWriter) 추적 플래그를 설정합니다.
Boolean updateMultipleRows(String, Vector) execute() 메소드가 호출될 때 다수 행을 갱신할지 여부를 판별합니다.

생성자

XMLToSQL
public XMLToSQL(SQLProperties sqlProperties)

이것이 유일한 생성자입니다. 데이터베이스 테이블을 갱신하는 데 필요한 정보는 SQLProperties를 통해 제공됩니다.

메소드

addToKeyColumns
public void addToKeyColumns(String columnName) throws Exception

UPDATE 또는 DELETE에 대한 where 절을 빌드하는 데 사용되는 키 열 이름 목록에 추가합니다. 테이블에 1차 키가 있는 경우, 해당 1차 키 열을 대신 사용합니다. 테이블에 정의된 1차 키 열이 없는 경우 이 메소드가 유용하지만, 이러한 경우 사용자의 의도와 무관하게 다수의 행이 갱신될 수 있으므로 주의해야 합니다. 열이 키 열과 갱신 열 모두가 될 수는 없습니다. 이 메소드는 INSERT에 아무런 영향도 주지 않습니다.

addToUpdateColumns
public void addToUpdateColumns(String columnName) throws Exception

갱신 또는 삽입되는 열 이름 목록에 추가합니다. execute() 메소드 이전에 이 메소드를 호출하지 않는 경우, 일부 키 열을 제외한 모든 열이 UPDATE 또는 INSERTall에 대한 XMLToSQL에 의해 목록에 추가됩니다. 열이 키 열과 갱신 열 모두가 될 수는 없습니다. 이 메소드는 DELETE에 아무런 영향도 주지 않습니다.

execute
public void execute(Document doc,
                    Boolean continueOnSQLError)
           throws SQLException, ClassNotFoundException, IOException,
                  SAXException, ParserConfigurationException

DOM 문서에서 테이블을 갱신합니다. continueOnSQLError의 부울 값에 따라 다른 트랜잭션 모드가 적용됩니다. 이것이 true일 때, 오류가 발생하더라도 나머지 행을 계속해서 갱신합니다. 이 경우 어느 행이 실패했는지 보려면, getFailedStatements()를 호출해야 합니다. continueOnSQLError가 false인 경우, 오류가 발생하면 처리된 모든 행에서 롤백이 수행됩니다.

execute
public void execute(InputStream inputStream)
           throws SQLException, ClassNotFoundException, IOException,
                  SAXException, ParserConfigurationException

XML 입력 스트림에서 테이블을 갱신합니다. 행 갱신 중 오류가 발생하는 경우, 이제까지 처리된 모든 행에 롤백이 수행됩니다.

execute
public void execute(InputStream inputStream,
                    Boolean continueOnSQLError)
           throws SQLException, ClassNotFoundException, IOException,
                  SAXException, ParserConfigurationException

XML 입력 스트림에서 테이블을 갱신합니다. continueOnSQLError의 부울 값에 따라 다른 트랜잭션 모드가 적용됩니다. 이것이 true일 때, 오류가 발생하더라도 나머지 행을 계속해서 갱신합니다. 이 경우 어느 행이 실패했는지 보려면, getFailedStatements()를 호출해야 합니다. continueOnSQLError가 false인 경우, 오류가 발생하면 처리된 모든 행에서 롤백이 수행됩니다.

execute
public void execute(String filename)
           throws SQLException, FileNotFoundException,
                  ClassNotFoundException, IOException, SAXException,
                  ParserConfigurationException

XML 파일에서 테이블을 갱신합니다. 행 갱신 중 오류가 발생하는 경우, 이제까지 처리된 모든 행에 롤백이 수행됩니다.

execute
public void execute(String filename,
                    Boolean continueOnSQLError)
           throws SQLException, FileNotFoundException,
                  ClassNotFoundException, IOException, SAXException,
                  ParserConfigurationException

XML 파일에서 테이블을 갱신합니다. continueOnSQLError의 부울 값에 따라 다른 트랜잭션 모드가 적용됩니다. 이것이 true일 때, 오류가 발생하더라도 나머지 행을 계속해서 갱신합니다. 이 경우 어느 행이 실패했는지 보려면, getFailedStatements()를 호출해야 합니다. continueOnSQLError가 false인 경우, 오류가 발생하면 처리된 모든 행에서 롤백이 수행됩니다.

finalize
public void finalize()

이것이 내부적으로 작성되는 경우 연결을 닫습니다. 연결이 외부에서 제공되면(setConnection()을 사용하여) 아무런 조치도 수행되지 않습니다. 이 메소드는 XMLToSQL이 가비지를 수집할 때 JVM에 의해 호출됩니다.

getFailedStatements
public Vector getFailedStatements()

실행 중 실패한 SQL 문의 콜렉션을 리턴합니다. 이 메소드는 continueOnError 플래그가 true일 때에만 의의가 있습니다.

getTableName
public String getTableName(InputStream inputStream)
             throws IOException, SAXException,
                    ParserConfigurationException

갱신될 데이터베이스 테이블 이름을 리턴합니다. SQL 문을 실행하기 전에 XML 입력 스트림에서 테이블 이름을 판별하기 위해 이 메소드가 제공됩니다. 이는 사용자 인터페이스 컴포넌트의 편의를 위한 것입니다.

getTableName
public String getTableName(String filename)
             throws IOException, SAXException,
                    ParserConfigurationException

갱신될 데이터베이스 테이블 이름을 리턴합니다. SQL 문을 실행하기 전에 XML 입력 스트림에서 테이블 이름을 판별하기 위해 이 메소드가 제공됩니다. 이는 사용자 인터페이스 컴포넌트의 편의를 위한 것입니다.

setConnection
public void setConnection(Connection jdbcConnection)

테이블 갱신에 사용될 JDBC 연결을 제공합니다. 이 메소드는 응용프로그램이 연결 풀과 같은 자신의 연결 관리 메커니즘을 사용하려고 할 때 유용하게 됩니다. execute() 메소드 이전에 이 메소드를 호출하지 않는 경우, XMLToSQL이 SQLProperties의 값을 사용하여 자신의 연결을 작성합니다.

setTrace
public void setTrace(Boolean flag)

추적 플래그를 설정합니다. 실행되고 있는 SQL 문이 플래그가 true일 때, 콘솔 외부로 인쇄됩니다. 기본적으로 추적이 꺼져 있습니다.

setTrace
public void setTrace(Boolean flag,
                     PrintWriter writer)

추적 플래그를 설정합니다. 실행되고 있는 SQL 문이 플래그가 true일 때, writer 외부로 인쇄됩니다. 기본적으로 추적은 false로 설정됩니다.

updateMultipleRows
public Boolean updateMultipleRows(String uri,
                                                                    Vector keys) throws Exception

execute() 메소드가 호출된 경우 북수 행을 갱신할지 삭제할지 여부를 판별합니다. 1차 키가 없는 테이블에 대해 조작을 수행할 때 UPDATE/DELETE 모드에서 복수 행이 변경될 가능성이 있습니다. 이 모드는 단일 행이 해당 소스 XML 요소에서 영향받을 경우 false를 리턴하고, 그렇지 않은 경우 true를 리턴합니다.

관련 태스크
마법사를 사용하여 SQL에서 XML 생성
XMLToSQL 클래스를 사용하여 테이블 갱신
관련 참조
클래스 com.ibm.etools.xmltosql.SQLProperties
클래스 com.ibm.etools.sqltoxml.SQLToXML
피드백
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.