|
|
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectorg.opengion.fukurou.xml.HybsXMLSave
public class HybsXMLSave
このクラスは、オラクル XDKの oracle.xml.sql.dml.OracleXMLSave クラスと
ほぼ同様の目的で使用できるクラスです。
拡張XDK形式のXMLファイルを読み込み、データベースに INSERT します。
拡張XDK形式の元となる オラクル XDK(Oracle XML Developer's Kit)については、以下の
リンクを参照願います。
XDK(Oracle XML Developer's Kit)
このクラスでは、MAP を登録する[ setDefaultMap( Map ) ]ことにより、
XMLファイルに存在しないカラムを初期値として設定することが可能になります。
例えば、登録日や、登録者、または、テンプレートより各システムID毎に
登録するなどです。
同様に、読み取った XMLファイルの情報を書き換える機能[ setAfterMap( Map ) ]メソッド
により、カラムの値の置き換えも可能です。
拡張XDK形式の元となる オラクル XDK(Oracle XML Developer's Kit)については、以下の
リンクを参照願います。
XDK(Oracle XML Developer's Kit)
拡張XDK形式とは、ROW 以外に、SQL処理用タグ(EXEC_SQL)を持つ XML ファイルです。
また、登録するテーブル(table)を ROWSETタグの属性情報として付与することができます。
(大文字小文字に注意)
これは、オラクルXDKで処理する場合、無視されますので、同様に扱うことが出来ます。
この、EXEC_SQL は、それそれの XMLデータをデータベースに登録する際に、
SQL処理を自動的に流す為の、SQL文を記載します。
この処理は、イベント毎に実行される為、その配置順は重要です。
このタグは、複数記述することも出来ますが、BODY部には、1つのSQL文のみ記述します。
<ROWSET tableName="XX" >
<EXEC_SQL> 最初に記載して、初期処理(データクリア等)を実行させる。
delete from GEXX where YYYYY
</EXEC_SQL>
<MERGE_SQL> このSQL文で UPDATEして、結果が0件ならINSERTを行います。
update GEXX set AA=[AA] , BB=[BB] where CC=[CC]
</MERGE_SQL>
<ROW num="1">
<カラム1>値1</カラム1>
・・・
<カラムn>値n</カラムn>
</ROW>
・・・
<ROW num="n">
・・・
</ROW>
<EXEC_SQL> 最後に記載して、項目の設定(整合性登録)を行う。
update GEXX set AA='XX' , BB='XX' where YYYYY
</EXEC_SQL>
<ROWSET>
コンストラクタの概要 | |
---|---|
HybsXMLSave(java.sql.Connection conn)
コネクションを指定して、オブジェクトを構築します。 |
|
HybsXMLSave(java.sql.Connection conn,
java.lang.String table)
コネクションとテーブル名を指定して、オブジェクトを構築します。 |
メソッドの概要 | |
---|---|
void |
actionExecSQL(TagElement tag)
<EXEC_SQL> タグの endElement 処理毎に呼び出されます。 |
void |
actionInit(TagElement tag)
<ROWSET> タグの一番最初に呼び出されます。 |
void |
actionMergeSQL(TagElement tag)
<MERGE_SQL> タグの endElement 処理時に呼び出されます。 |
void |
actionRow(TagElement tag)
<ROW> タグの endElement 処理毎に呼び出されます。 |
int |
getDeleteCount()
データベースに変更(更新、削除を含む)した件数を返します。 |
int |
getInsertCount()
データベースに追加した件数を返します。 |
java.lang.String |
getTableName()
実際に登録された テーブル名を返します。 |
int |
getUpdateCount()
データベースを更新した件数を返します。 |
void |
insertXML(java.io.Reader reader)
データベースに追加処理(INSERT)を行います。 |
static void |
main(java.lang.String[] args)
テスト用のメインメソッド java org.opengion.fukurou.xml.HybsXMLSave USER PASSWD URL TABLE FILE [ENCODE] [DRIVER] USER : DB接続ユーザー(GE) PASSWD: DB接続パスワード(GE) URL : DB接続JDBCドライバURL(jdbc:oracle:thin:@localhost:1521:HYBS TABLE : 登録するテーブルID(GE21) FILE : 登録するORACLE XDK 形式 XMLファイル(GE21.xml) ENCODE: ファイルのエンコード 初期値:UTF-8 DRIVER: JDBCドライバー 初期値:oracle.jdbc.OracleDriver |
void |
setAfterMap(java.util.Map<java.lang.String,java.lang.String> map)
XMLファイルを読み取った後で指定するカラムと値のペア(Map)情報 このカラムと値のペアのマップは、オブジェクト構築後に設定される為、 XMLファイルのキーの存在に関係なく、Mapのキーと値が使用されます。 |
void |
setDefaultMap(java.util.Map<java.lang.String,java.lang.String> map)
XMLファイルを読み取る前に指定するカラムと値のペア(Map)情報 このカラムと値のペアのマップは、オブジェクト構築前に設定される為、 XMLファイルにキーが存在している場合は、値が書き変わります。 |
void |
setKeyColumns(java.lang.String[] keyCols)
UPDATE,DELETE を行う場合の WHERE 条件になるキー配列 このキーの AND 条件でカラムを特定し、UPDATE,DELETE などの処理を 行います。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
---|
public HybsXMLSave(java.sql.Connection conn)
conn
- Connection データベース接続public HybsXMLSave(java.sql.Connection conn, java.lang.String table)
conn
- Connection データベース接続table
- String テーブル名(ROWSETタグのtable属性が未設定時に使用)4.0.0.0 (2007/09/25) ParameterMetaData を使用したパラメータ設定追加。 |
5.3.8.0 (2011/08/01) useParamMetaData を このクラスで直接取得する。(PostgreSQL対応) |
メソッドの詳細 |
---|
public void actionInit(TagElement tag)
TagElementListener
内の actionInit
tag
- TagElementTagElement
,
HybsXMLHandler.setTagElementListener( TagElementListener )
public void actionRow(TagElement tag)
TagElementListener
内の actionRow
tag
- TagElementTagElement
,
HybsXMLHandler.setTagElementListener( TagElementListener )
4.0.0 (2007/05/09) ParameterMetaData を使用したパラメータ設定追加。 |
4.0.0.0 (2007/09/25) isOracle から useParamMetaData に変更 |
4.3.7.0 (2009/06/01) HSQLDB対応 |
5.3.8.0 (2011/08/01) useParamMetaData setNull 対応(PostgreSQL対応) |
public void actionExecSQL(TagElement tag)
TagElementListener
内の actionExecSQL
tag
- TagElementTagElement
,
HybsXMLHandler.setTagElementListener( TagElementListener )
public void actionMergeSQL(TagElement tag)
TagElementListener
内の actionMergeSQL
tag
- TagElementTagElement
,
HybsXMLHandler.setTagElementListener( TagElementListener )
4.0.0 (2007/05/09) ParameterMetaData を使用したパラメータ設定追加。 |
4.0.0.0 (2007/09/25) isOracle から useParamMetaData に変更 |
public void setKeyColumns(java.lang.String[] keyCols)
keyCols
- String[] WHERE 条件になるキー配列public void setDefaultMap(java.util.Map<java.lang.String,java.lang.String> map)
map
- MapsetAfterMap( Map )
public void setAfterMap(java.util.Map<java.lang.String,java.lang.String> map)
map
- MapsetDefaultMap( Map )
public void insertXML(java.io.Reader reader)
reader
- Reader XMLファイルを指定するリーダー5.1.1.0 (2009/11/11) insMeta , updMeta のクリア(気休め) |
public int getInsertCount()
public int getUpdateCount()
public int getDeleteCount()
public java.lang.String getTableName()
public static void main(java.lang.String[] args) throws java.lang.ClassNotFoundException, java.sql.SQLException
args
- String[]
java.lang.Exception
java.lang.ClassNotFoundException
java.sql.SQLException
5.1.1.0 (2009/12/01) MySQL対応 明示的に、TRANSACTION_READ_COMMITTED を指定する。 |
|
openGion 5.4.1.0 | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |