クラス SqlFunction<T>

型パラメーター:
T - 結果の型
実装されたすべてのインターフェース:
InitializingBean

public class SqlFunction<T> extends MappingSqlQuery<T>
結果の単一行を返すクエリの SQL「関数」ラッパー。デフォルトの動作では int が返されますが、戻り値の型パラメーターを追加したコンストラクターを使用してオーバーライドできます。

"select user()" や "select sysdate from dual" などのクエリを使用して単一の結果を返す SQL 関数を呼び出すために使用することを目的としています。より複雑なストアド関数を呼び出すことや、CallableStatement を使用してストアドプロシージャまたはストアド関数を呼び出すことは目的としていません。この型の処理には、StoredProcedure または SqlCall を使用します。

これは具象クラスであり、多くの場合、サブクラス化する必要はありません。このパッケージを使用するコードは、この型のオブジェクトを作成し、SQL とパラメーターを宣言してから、適切な run メソッドを繰り返し呼び出して関数を実行できます。サブクラスは、特定のパラメーターと戻り値の型に特化した run メソッドを追加することのみを想定しています。

すべての RdbmsOperation オブジェクトと同様に、SqlFunction オブジェクトはスレッドセーフです。

作成者:
Rod Johnson, Juergen Hoeller, Jean-Pierre Pawlak
関連事項:
  • コンストラクターの詳細

    • SqlFunction

      public SqlFunction()
      JavaBean として使用できるコンストラクター。compile メソッドを呼び出してこのオブジェクトを使用する前に、DataSource、SQL、任意のパラメーターを指定する必要があります。
      関連事項:
    • SqlFunction

      public SqlFunction(DataSourceSE ds, StringSE sql)
      SQL を使用して、パラメーターを指定せずに新しい SqlFunction オブジェクトを作成します。パラメーターを追加するか、パラメーターなしで解決する必要があります。
      パラメーター:
      ds - 接続を取得する DataSource
      sql - 実行する SQL
    • SqlFunction

      public SqlFunction(DataSourceSE ds, StringSE sql, int[] types)
      SQL とパラメーターを使用して新しい SqlFunction オブジェクトを作成します。
      パラメーター:
      ds - 接続を取得する DataSource
      sql - 実行する SQL
      types - java.sql.Types クラスで定義されているパラメーターの SQL 型
      関連事項:
    • SqlFunction

      public SqlFunction(DataSourceSE ds, StringSE sql, int[] types, ClassSE<T> resultType)
      SQL、パラメーター、結果型を使用して、新しい SqlFunction オブジェクトを作成します。
      パラメーター:
      ds - 接続を取得する DataSource
      sql - 実行する SQL
      types - java.sql.Types クラスで定義されているパラメーターの SQL 型
      resultType - 結果オブジェクトが一致する必要がある型
      関連事項:
  • メソッドの詳細

    • setResultType

      public void setResultType(ClassSE<T> resultType)
      結果オブジェクトが一致する必要がある型を指定します。

      指定しない場合、JDBC ドライバーから返される結果値が公開されます。

    • mapRow

      @Nullable protected T mapRow(ResultSetSE rs, int rowNum) throws SQLExceptionSE
      このメソッドのこの実装は、関数によって返された単一の行から単一の値を抽出します。返される行数が異なる場合、これはエラーとして扱われます。
      次で指定:
      クラス MappingSqlQuery<T>mapRow 
      パラメーター:
      rs - 取り組んでいる ResultSet
      rowNum - 行番号(0 から)
      戻り値:
      結果型のオブジェクト
      例外:
      SQLExceptionSE - データの抽出中にエラーが発生した場合。サブクラスは SQLException を単純にキャッチできず、クリーンアップはフレームワークに依存しています。
    • run

      public int run()
      引数なしで関数を実行する便利なメソッド。
      戻り値:
      関数の値
    • run

      public int run(int parameter)
      単一の int 引数で関数を実行する便利なメソッド。
      パラメーター:
      parameter - 単一の int パラメーター
      戻り値:
      関数の値
    • run

      public int run(ObjectSE... parameters)
      SqlQuery.execute([])メソッドに似ています。これはクエリを実行するための一般的なメソッドであり、いくつかの引数を取ります。
      パラメーター:
      parameters - パラメーターの配列。これらは、プリミティブのオブジェクトまたはオブジェクトラッパー型です。
      戻り値:
      関数の値
    • runGeneric

      @Nullable public ObjectSE runGeneric()
      引数なしで関数を実行し、値をオブジェクトとして返す便利なメソッド。
      戻り値:
      関数の値
    • runGeneric

      @Nullable public ObjectSE runGeneric(int parameter)
      単一の int 引数で関数を実行する便利なメソッド。
      パラメーター:
      parameter - 単一の int パラメーター
      戻り値:
      オブジェクトとしての関数の値
    • runGeneric

      @Nullable public ObjectSE runGeneric(ObjectSE[] parameters)
      SqlQuery.findObject(Object[]) メソッドに似ています。これはクエリを実行するための一般的なメソッドであり、いくつかの引数を取ります。
      パラメーター:
      parameters - パラメーターの配列。これらは、プリミティブのオブジェクトまたはオブジェクトラッパー型です。
      戻り値:
      オブジェクトとしての関数の値
      関連事項: