jdbcrunner
クラス Template

java.lang.Object
  上位を拡張 jdbcrunner.Template

public class Template
extends java.lang.Object

独自記法のSQL文から、SQL文とパラメータのデータ型を抽出して保持するクラスです。

作成者:
Sadao Hiratsuka

入れ子のクラスの概要
static class Template.DataType
          パラメータのデータ型を表す列挙型クラスです。
 
コンストラクタの概要
Template(java.lang.String statement)
          独自記法のSQL文を指定してTemplateを構築します。
 
メソッドの概要
 java.util.List<Template.DataType> getDataTypeList()
          パラメータのデータ型リストを返します。
 java.lang.String getPreparableStatement()
          SQL文を返します。
 void setParameters(java.sql.PreparedStatement preparedStatement, java.lang.Object[] parameters)
          PreparedStatement オブジェクトにパラメータを設定します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Template

public Template(java.lang.String statement)
独自記法のSQL文を指定してTemplateを構築します。

  1. 独自記法のSQL文に「$」で始まる文字列があるかどうかを調べます。
  2. 文字列「$$」があった場合、「$」に置換します。
  3. 文字列「$int」「$long」「$double」「$string」 「$timestamp」があった場合、パラメータのデータ型リストにintlongdoubleStringTimestamp を登録し、文字列を「?」に置換します。
  4. それ以外の「$」で始まる文字列がある場合はIllegalArgumentExceptionをスローします。
  5. 置換された文字列をSQL文としてインスタンス変数に登録します。

パラメータ:
statement - 独自記法のSQL文
例外:
java.lang.IllegalArgumentException - 独自記法のSQL文に、「$」で始まるが「$$」 あるいはパラメータとして認識されない文字列が含まれている場合
メソッドの詳細

getPreparableStatement

public java.lang.String getPreparableStatement()
SQL文を返します。

戻り値:
SQL文

getDataTypeList

public java.util.List<Template.DataType> getDataTypeList()
パラメータのデータ型リストを返します。

戻り値:
パラメータのデータ型リスト

setParameters

public void setParameters(java.sql.PreparedStatement preparedStatement,
                          java.lang.Object[] parameters)
                   throws java.sql.SQLException
PreparedStatement オブジェクトにパラメータを設定します。

  1. パラメータ配列の配列長が、データ型のリスト長と等しいことを確認します。異なる場合は IllegalArgumentExceptionをスローします。
  2. それぞれのパラメータを、リストから得たデータ型へ変換し PreparedStatementオブジェクトに設定します。 対象のデータ型への変換が行えない場合はIllegalArgumentExceptionをスローします。

パラメータ:
preparedStatement - パラメータを設定するPreparedStatementオブジェクト
parameters - パラメータの配列
例外:
java.sql.SQLException - データベースアクセス中に例外が発生した場合
java.lang.IllegalArgumentException - パラメータの配列長がデータ型のリスト長と異なる場合、 パラメータを対象のデータ型へ変換できない場合