java.lang.Object com.ibm.etools.xmltosql.XMLToSQL
パブリック・クラス 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 ライブラリーを 使用して 1 つを生成し、それからそれを変更して更新用の新規の値を提供します。 ユーザーは、 XMLToSQL ライブラリーを使用してコードを書く前に、「XML to SQL」ウィザードを 使用して XML 文書の妥当性を単体テストすることもできます。
コンストラクター | 記述 |
---|---|
XMLToSQL(SQLProperties) | これはコンストラクターのみです。 |
メソッド | 記述 |
---|---|
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(SQLProperties sqlProperties)
これはコンストラクターのみです。 データベース・テーブルの更新に必要な何らかの情報は、SQLProperties を経由して提供されます。
public void addToKeyColumns(String columnName) throws Exception
UPDATE または DELETE の where 文節の作成に使用されるキー列名のリストに追加します。 テーブルに基本キーがある場合、これらの基本キー列が代わりに使用されます。 テーブルに基本キー列が何も定義されていない場合、このメソッドは役に立ちます。しかし、この場合は複数の行が意図的でなく更新されることができるので注意が必要です。 ある列が、キー列で同時に更新列になることはできません。 このメソッドは INSERT には何の影響もありません。
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 のブール値によっては別のトランザクション・モードが適用されます。 これが 真 の場合は、エラーが発生しても残りの行の更新は継続されます。 この場合、 どちらの行が失敗したかを見るには、getFailedStatements() を呼び出す必要があります。 もし、continueOnSQLError が 偽 の場合、エラーが発生したときは処理されたすべての行についてロールバックされます。
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 のブール値によっては別のトランザクション・モードが適用されます。 これが 真 の場合は、エラーが発生しても残りの行の更新は継続されます。 この場合、 どちらの行が失敗したかを見るには、getFailedStatements() を呼び出す必要があります。 もし、continueOnSQLError が 偽 の場合、エラーが発生したときは処理されたすべての行についてロールバックされます。
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 のブール値によっては別のトランザクション・モードが適用されます。 これが 真 の場合は、エラーが発生しても残りの行の更新は継続されます。 この場合、 どちらの行が失敗したかを見るには、getFailedStatements() を呼び出す必要があります。 もし、continueOnSQLError が 偽 の場合、エラーが発生したときは処理されたすべての行についてロールバックされます。
public void finalize()
これが内部で作成されたものである場合はこの接続をクローズする。 接続が外部から提供されていた場合 (setConnection() を使用して)、何も実行されません。 XMLToSQL がゴミ収集されたときには、このメソッドは JVM によって呼び出されます。
public Vector getFailedStatements()
実行時に失敗している SQL ステートメントのコレクションを戻す。 このメソッドは continueOnError フラグが 真 の時にのみ意味があります。
public String getTableName(InputStream inputStream) throws IOException, SAXException, ParserConfigurationException
更新されるデータベース・テーブル名を戻します。 このメソッドは、SQL ステートメントを実行する前に XML 入力ストリームからのテーブル名を判別するために提供されています。 これは何らかのユーザー・インターフェース・コンポーネントの便宜のために提供されています。
public String getTableName(String filename) throws IOException, SAXException, ParserConfigurationException
更新されるデータベース・テーブル名を戻す。 このメソッドは、SQL ステートメントを実行する前に XML 入力ストリームからのテーブル名を判別するために提供されています。 これは何らかのユーザー・インターフェース・コンポーネントの便宜のために提供されています。
public void setConnection(Connection jdbcConnection)
テーブルを更新するために使用する JDBC 接続を提供します。 アプリケーション・プログラムが、接続プールのような自身の接続管理メカニズムを使用したい場合には、このメソッドが役に立ちます。 このメソッドを、いずれかの execute() メソッドの前に呼び出したことがない場合、XMLToSQL は SQLProperties からの値を使用して自身の接続を作成します。
public void setTrace(Boolean flag)
トレース・フラグをセットする。 フラグが 真 の場合、実行中の SQL ステートメントは、コンソールに印刷出力されます。 デフォルトでトレースはオフにされます。
public void setTrace(Boolean flag, PrintWriter writer)
トレース・フラグをセットする。 フラグが 真 の場合、実行中の SQL ステートメントは、書き込みプログラムに印刷出力されます。 デフォルトでトレースは偽 にセットされます。
public Boolean updateMultipleRows(String uri, Vector keys) throws Exception
いずれかの execute() メソッドがかってコールされたことがある場合、複数行が更新 / 削除されていたか判別します。 基本キーを持たないテーブルに対して操作が行われる場合、 UPDATE/DELETE モードで複数の行が変更される可能性があります。 単一行がその対応するソース XML エレメントから影響を受ける可能性がある場合、このメソッドは「偽」を戻します。それ以外の場合は「真」を戻します。