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

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

public class XMLToSQL extends Object

XMLToSQL은 XML 문서를 사용하여 데이터베이스 테이블에서 행을 삽입, 갱신 또는 삭제합니다. XML 구조에서 테이블 구조로 맵핑은 간단한 맵핑 규칙 세트를 기반으로 합니다. 다음 XML 단편에서는 맵핑 규칙을 보여줍니다.

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

유효한 XML 문서를 작성하는 좋은 방법은 먼저 생성할 SQLToXML 라이브러리를 사용한 후 갱신에 새 값을 제공하도록 수정하는 것입니다. 또한 XMLToSQL 라이브러리를 사용하는 사용자 코드를 작성하기 전에 유효성 검증을 위해 XML 문서를 단위별로 테스트할 XML에서 SQL로 생성 마법사를 사용할 수 있습니다.

표 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일 때, 콘솔 외부로 인쇄됩니다. 기본적으로 추적은 false로 설정되어 있습니다.

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.