クラス com.ibm.etools.xmltosql.XMLToSQL

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

パブリック・クラス XMLToSQL は 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 ライ ブラリーを使用して文書を生成し、その後で更新用の新規の値を 提供するためそれを変更するというやり方です。「XML から SQL へ」ウィザードを使用 して、XML 文書の妥当性について単体テストを行ってから、XMLToSQL ライブラリーを使用するコードを書き込むこともできます。

表 1. コンストラクター・インデックス
コンストラクター 説明
XMLToSQL(SQLProperties) これはただ 1 つのコンストラクターです。
表 2. メソッド・インデックス
メソッド 説明
void addToKeyColumns(String) UPDATE または DELETE の where 文節をビルドする際に使用するキ ー列名のリストを追加する。
void addToUpdateColumns(String) 更新または挿入される列名のリストを追加する。
void execute(DocumentBoolean) DOM 文書のテーブルを更新する。
void execute(InputStream) XML 入力ストリームのテーブルを更新する。
void execute(InputStreamBoolean) XML 入力ストリームのテーブルを更新する。
void execute(String) XML ファイルのテーブルを更新する。
void execute(StringBoolean) XML ファイルのテーブルを更新する。
void finalize() これが内部的に作成された場合、接続を閉じる。
Vector getFailedStatements() 実行中に失敗した SQL ステートメントの集合を戻す。
String getTableName(InputStream) 更新されるデータベース・テーブルの名前を戻す。
String getTableName(String) 更新されるデータベース・テーブルの名前を戻す。
void setConnection(Connection) テーブルの更新用に使用される JDBC 接続を提供する。
void setTrace(Boolean) トレース・フラグを設定する。
void setTrace(BooleanPrintWriter) トレース・フラグを設定する。
Boolean updateMultipleRows(StringVector) 何らかの execute() メソッドが呼び出された後、複数行が更新される場合を判別する。

コンストラクター

XMLToSQL
public XMLToSQL(SQLProperties sqlProperties)

これはただ 1 つのコンストラクターです。データベース・テーブルの更新に必要な情報は、すべて 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 または INSERT の XMLToSQL に よってリストに追加されます。列は、キー列と更新列の両方とすることはできません。 このメソッドは、DELETE については効果がありません。

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

DOM 文書のテーブルを更新します。 continueOnSQLError のブール値によって、異なるトランザクション・モードが適用されます。これが true のときは、たとえエラーが発生しても行の残りについて引き続き更新が行われます。この場合、どの行で失敗したかを判別するには、getFailedStatements() を呼び出す必要があります。continueOnSQLError が false の場合、エラーが起きる場合に備えて、 処理されたすべての行でロールバックが行われます。

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

XML 入力 ストリームのテーブルを更新します。行の更新中にエラーが発生した場合、それまでに処理されたすべての行についてロールバックが行われます。

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

XML 入 力ストリームのテーブルを更新します。 continueOnSQLError のブール値によって、異なるトランザクション・モード が適用されます。これが true のときは、たとえエラーが発生しても、行の残りについて引き続き更新が行われます。この場合、どの行で失敗したかを判別するには、getFailedStatements() を呼び出す必要があります。continueOnSQLError が false の場合、エラーが起きる場合に備えて、処理されたすべての行でロールバックが行われます。

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

XML ファイルのテーブルを更新します。行の更新中にエラーが発生した場合、それまでに処理されたすべての行についてロールバックが行われます。

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

XML ファイル のテーブルを更新します。 continueOnSQLError のブール値によって、異なるトランザクション・モード が適用されます。これが true のときは、たとえエラーが発生しても 行の残りについて引き続き更新が行われます。この場合、どの行で失敗したかを 判別するには、getFailedStatements() を呼び出す必要があります。continueOnSQLError が false の場合、エラーが起きる場合に備えて、処理されたすべての行 でロールバックが行われます。

ファイナライズ
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 の とき、書き込みプログラムにプリントアウトされます。デフォルトではトレースは 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.