jp.terasoluna.fw.ex.unit.io.impl
クラス DbTarget<T>

java.lang.Object
  上位を拡張 jp.terasoluna.fw.ex.unit.io.impl.DbTarget<T>
すべての実装されたインタフェース:
OutputTarget<T>

public class DbTarget<T>
extends Object
implements OutputTarget<T>

入力ソースオブジェクトをDBに出力します。
コンストラクタまたはsetterにて以下のパラメータを指定します。

パラメータ名 説明 設定箇所 必須
jdbcTemplate JdbcTemplateオブジェクト。DataSource オブジェクトが設定されている必要があります。 コンストラクタ
tableName 出力先テーブル名。 コンストラクタ  
clazz 出力対象となるBeanのクラス。このクラス名が出力先テーブル名に使用されます。 コンストラクタ  
sql データ挿入用SQL。デフォルトではテーブル名とヘッダ情報から自動で作成されます。自動で作成されたSQLではテストできない場合のみ変更してください。( setSql(String)参照) setter  

デフォルトではテーブル名とInputSourceから渡されるヘッダ情報からINSERT文を作成し、InputSource が生成するオブジェクトの値を埋め込んだSQLを実行します。
【例】
テーブル名がPerson、ヘッダ情報が{id, name, address}の場合、
INSERT INTO Person(id, name, address) VALUES(?, ?, ?)というINSERT文が作成されます。
各Personオブジェクトのid、name、address値がプリペアドステートメントのバインドパラメータとして埋め込まれ、このSQLが実行されます。
使用例はCsvSource参照。


フィールドの概要
protected  String[] header
           
protected  String sql
           
protected  String tableName
           
protected  org.springframework.jdbc.core.JdbcTemplate template
           
 
コンストラクタの概要
DbTarget(org.springframework.jdbc.core.JdbcTemplate template, Class<T> clazz)
           
DbTarget(org.springframework.jdbc.core.JdbcTemplate template, String tableName)
           
 
メソッドの概要
 void close()
          出力終了処理を行います。
 String getSql()
          データ挿入用SQLを返却します。
 void setSql(String sql)
          データ挿入用SQLを設定します。
 void write(T obj)
          一行あたりのオブジェクトを書き込みます。
 void writeHeader(String[] header)
          ヘッダ情報を書き込みます。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

template

protected final org.springframework.jdbc.core.JdbcTemplate template

sql

protected String sql

header

protected String[] header

tableName

protected String tableName
コンストラクタの詳細

DbTarget

public DbTarget(org.springframework.jdbc.core.JdbcTemplate template,
                String tableName)

DbTarget

public DbTarget(org.springframework.jdbc.core.JdbcTemplate template,
                Class<T> clazz)
メソッドの詳細

write

public void write(T obj)
インタフェース OutputTarget の記述:
一行あたりのオブジェクトを書き込みます。

定義:
インタフェース OutputTarget<T> 内の write
パラメータ:
obj - 書き込むオブジェクト

writeHeader

public void writeHeader(String[] header)
インタフェース OutputTarget の記述:
ヘッダ情報を書き込みます。

定義:
インタフェース OutputTarget<T> 内の writeHeader
パラメータ:
header - ヘッダ情報

close

public void close()
インタフェース OutputTarget の記述:
出力終了処理を行います。

定義:
インタフェース OutputTarget<T> 内の close

getSql

public String getSql()
データ挿入用SQLを返却します。

戻り値:
データ挿入用SQL

setSql

public void setSql(String sql)
データ挿入用SQLを設定します。
 このSQLがwrite(Object)メソッド実行中に、行オブジェクトのフィールド値をバインドして実行されます。
 バインドパラメータの順番はwriteHeader(String[])で渡されるヘッダ情報の順番に一致します。
 
 本メソッドでSQLを設定しない場合はwriteHeader(String[])で渡されるヘッダ情報とテーブル名から自動で
 SQLを作成します(JdbcTemplateUtils.createInsertSql(String, String[])使用)。
 ヘッダ情報の順序はwriteHeader(String[])実行元によって変わるため、
 本メソッドでSQLを設定する場合は必ずヘッダ情報の順序を確認してください。
 

パラメータ:
sql - データ挿入用SQL


Copyright © 2011. All Rights Reserved.