クラス SqlQuery<T>

型パラメーター:
T - 結果の型
実装されたすべてのインターフェース:
InitializingBean
既知の直属サブクラス
GenericSqlQueryMappingSqlQueryWithParametersUpdatableSqlQuery

public abstract class SqlQuery<T> extends SqlOperation
SQL クエリを表す再利用可能な操作オブジェクト。

サブクラスは、newRowMapper(java.lang.Object[], java.util.Map<?, ?>) メソッドを実装して、クエリの実行中に作成された ResultSet を反復処理した結果を抽出できるオブジェクトを提供する必要があります。

このクラスは、さまざまな便利な JDO クエリ実行メソッドに類似した多数のパブリック execute メソッドを提供します。サブクラスは、これらの継承されたメソッドのいずれかに依存するか、意味のある名前と型付きパラメーターを使用して独自のカスタム実行メソッドを追加できます(間違いなくベストプラクティス)。各カスタムクエリメソッドは、このクラスの型なしクエリメソッドの 1 つを呼び出します。

Spring Framework に同梱されているすべての RdbmsOperation クラスと同様に、SqlQuery インスタンスは初期化が完了した後はスレッドセーフです。つまり、setter メソッドを使用して構築および構成した後、複数のスレッドから安全に使用できます。

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

    • SqlQuery

      public SqlQuery()
      JavaBean として使用できるようにするコンストラクター。

      DataSource および SQL は、コンパイルして使用する前に提供する必要があります。

    • SqlQuery

      public SqlQuery(DataSourceSE ds, StringSE sql)
      DataSource と SQL 文字列を使用した便利なコンストラクター。
      パラメーター:
      ds - 接続を取得するために使用する DataSource 
      sql - 実行する SQL。RdbmsOperation.getSql() メソッドをオーバーライドすることにより、実行時に SQL を提供することもできます。
  • メソッドの詳細

    • setRowsExpected

      public void setRowsExpected(int rowsExpected)
      予想される行数を設定します。

      これを使用して、結果を効率的に保存できます。デフォルトの動作では、特定の行数は想定されていません。

    • getRowsExpected

      public int getRowsExpected()
      予想される行数を取得します。
    • execute

      public ListSE<T> execute(@Nullable ObjectSE[] params, @Nullable MapSE<?,?> context) throws DataAccessException
      主要な実行メソッド。名前のないパラメーターの実行はすべて、このメソッドを経由します。
      パラメーター:
      params - JDO クエリパラメーターと同様のパラメーター。プリミティブパラメーターは、オブジェクトラッパー型で表す必要があります。パラメーターの順序は重要です。
      context - mapRow コールバックメソッドに渡されるコンテキスト情報。JDBC 操作自体はこのパラメーターに依存しませんが、結果リストのオブジェクトを作成できます。
      戻り値:
      オブジェクトのリスト、ResultSet の行ごとに 1 つ。通常、これらはすべて同じクラスになりますが、異なる型を使用することもできます。
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(ObjectSE... params) throws DataAccessException
      コンテキストなしで実行する便利なメソッド。
      パラメーター:
      params - クエリのパラメーター。プリミティブパラメーターは、オブジェクトラッパー型で表す必要があります。パラメーターの順序は重要です。
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(MapSE<?,?> context) throws DataAccessException
      パラメーターなしで実行する便利なメソッド。
      パラメーター:
      context - オブジェクト作成のコンテキスト情報
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute() throws DataAccessException
      パラメーターやコンテキストなしで実行する便利なメソッド。
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(int p1, @Nullable MapSE<?,?> context) throws DataAccessException
      単一の int パラメーターとコンテキストで実行する便利なメソッド。
      パラメーター:
      p1 - 単一の int パラメーター
      context - オブジェクト作成のコンテキスト情報
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(int p1) throws DataAccessException
      単一の int パラメーターで実行する便利なメソッド。
      パラメーター:
      p1 - 単一の int パラメーター
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(int p1, int p2, @Nullable MapSE<?,?> context) throws DataAccessException
      2 つの int パラメーターとコンテキストで実行する便利なメソッド。
      パラメーター:
      p1 - 最初の int パラメーター
      p2 - 2 番目の int パラメーター
      context - オブジェクト作成のコンテキスト情報
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(int p1, int p2) throws DataAccessException
      2 つの int パラメーターで実行する便利なメソッド。
      パラメーター:
      p1 - 最初の int パラメーター
      p2 - 2 番目の int パラメーター
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(long p1, @Nullable MapSE<?,?> context) throws DataAccessException
      単一の長いパラメーターとコンテキストで実行する便利なメソッド。
      パラメーター:
      p1 - 単一の長いパラメーター
      context - オブジェクト作成のコンテキスト情報
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(long p1) throws DataAccessException
      単一の長いパラメーターで実行する便利なメソッド。
      パラメーター:
      p1 - 単一の長いパラメーター
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(StringSE p1, @Nullable MapSE<?,?> context) throws DataAccessException
      単一の String パラメーターとコンテキストで実行する便利なメソッド。
      パラメーター:
      p1 - 単一の String パラメーター
      context - オブジェクト作成のコンテキスト情報
      例外:
      DataAccessException
    • execute

      public ListSE<T> execute(StringSE p1) throws DataAccessException
      単一の String パラメーターで実行する便利なメソッド。
      パラメーター:
      p1 - 単一の String パラメーター
      例外:
      DataAccessException
    • executeByNamedParam

      public ListSE<T> executeByNamedParam(MapSE<StringSE,?> paramMap, @Nullable MapSE<?,?> context) throws DataAccessException
      主要な実行メソッド。名前付きパラメーターの実行はすべて、このメソッドを経由します。
      パラメーター:
      paramMap - SqlParameters の宣言中に指定された名前に関連付けられたパラメーター。プリミティブパラメーターは、オブジェクトラッパー型で表す必要があります。パラメーターは、Map インターフェースの実装である SqlParameterMap で提供されるため、パラメーターの順序は重要ではありません。
      context - mapRow コールバックメソッドに渡されるコンテキスト情報。JDBC 操作自体はこのパラメーターに依存しませんが、結果リストのオブジェクトを作成できます。
      戻り値:
      オブジェクトのリスト、ResultSet の行ごとに 1 つ。通常、これらはすべて同じクラスになりますが、異なる型を使用することもできます。
      例外:
      DataAccessException
    • executeByNamedParam

      public ListSE<T> executeByNamedParam(MapSE<StringSE,?> paramMap) throws DataAccessException
      コンテキストなしで実行する便利なメソッド。
      パラメーター:
      paramMap - SqlParameters の宣言中に指定された名前に関連付けられたパラメーター。プリミティブパラメーターは、オブジェクトラッパー型で表す必要があります。パラメーターの順序は重要ではありません。
      例外:
      DataAccessException
    • findObject

      @Nullable public T findObject(@Nullable ObjectSE[] params, @Nullable MapSE<?,?> context) throws DataAccessException
      他のすべての findObject メソッドで使用される汎用オブジェクト検索メソッド。オブジェクトファインダメソッドは、EJB エンティティ Bean ファインダに似ています。複数の結果を返す場合、エラーと見なされます。
      戻り値:
      結果オブジェクト。見つからない場合は null サブクラスはこれをエラーとして扱い、例外をスローすることを選択できます。
      例外:
      DataAccessException
      関連事項:
    • findObject

      @Nullable public T findObject(ObjectSE... params) throws DataAccessException
      コンテキストなしで単一のオブジェクトを見つける便利な方法。
      例外:
      DataAccessException
    • findObject

      @Nullable public T findObject(int p1, @Nullable MapSE<?,?> context) throws DataAccessException
      単一の int パラメーターとコンテキストが与えられた単一のオブジェクトを検索する便利なメソッド。
      例外:
      DataAccessException
    • findObject

      @Nullable public T findObject(int p1) throws DataAccessException
      単一の int パラメーターを指定して単一のオブジェクトを検索する便利なメソッド。
      例外:
      DataAccessException
    • findObject

      @Nullable public T findObject(int p1, int p2, @Nullable MapSE<?,?> context) throws DataAccessException
      2 つの int パラメーターとコンテキストが与えられた単一のオブジェクトを検索する便利なメソッド。
      例外:
      DataAccessException
    • findObject

      @Nullable public T findObject(int p1, int p2) throws DataAccessException
      2 つの int パラメーターが与えられた単一のオブジェクトを見つける便利なメソッド。
      例外:
      DataAccessException
    • findObject

      @Nullable public T findObject(long p1, @Nullable MapSE<?,?> context) throws DataAccessException
      単一の長いパラメーターとコンテキストを指定して単一のオブジェクトを検索する便利なメソッド。
      例外:
      DataAccessException
    • findObject

      @Nullable public T findObject(long p1) throws DataAccessException
      単一の長いパラメーターを指定して単一のオブジェクトを検索する便利なメソッド。
      例外:
      DataAccessException
    • findObject

      @Nullable public T findObject(StringSE p1, @Nullable MapSE<?,?> context) throws DataAccessException
      単一の String パラメーターとコンテキストを指定して単一のオブジェクトを検索する便利なメソッド。
      例外:
      DataAccessException
    • findObject

      @Nullable public T findObject(StringSE p1) throws DataAccessException
      単一の String パラメーターを指定して単一のオブジェクトを検索する便利なメソッド。
      例外:
      DataAccessException
    • findObjectByNamedParam

      @Nullable public T findObjectByNamedParam(MapSE<StringSE,?> paramMap, @Nullable MapSE<?,?> context) throws DataAccessException
      名前付きパラメーターの汎用オブジェクト検索メソッド。
      パラメーター:
      paramMap - SQL ステートメントで指定された名前付きパラメーターに一致するパラメーター名のパラメーターオブジェクトへのマップ。順序は重要ではありません。
      context - mapRow コールバックメソッドに渡されるコンテキスト情報。JDBC 操作自体はこのパラメーターに依存しませんが、結果リストのオブジェクトを作成できます。
      戻り値:
      オブジェクトのリスト、ResultSet の行ごとに 1 つ。通常、これらはすべて同じクラスになりますが、異なる型を使用することもできます。
      例外:
      DataAccessException
    • findObjectByNamedParam

      @Nullable public T findObjectByNamedParam(MapSE<StringSE,?> paramMap) throws DataAccessException
      コンテキストなしで実行する便利なメソッド。
      パラメーター:
      paramMap - SQL ステートメントで指定された名前付きパラメーターに一致するパラメーター名のパラメーターオブジェクトへのマップ。順序は重要ではありません。
      例外:
      DataAccessException
    • newRowMapper

      protected abstract RowMapper<T> newRowMapper(@Nullable ObjectSE[] parameters, @Nullable MapSE<?,?> context)
      サブクラスは、このメソッドを実装して、execute メソッドによって集約された ListSE として返される行ごとにオブジェクトを抽出する必要があります。
      パラメーター:
      parameters - サブクラスに関心がある場合の execute() メソッドのパラメーター。パラメーターがなかった場合は、null になる場合があります。
      context - mapRow コールバックメソッドに渡されるコンテキスト情報。JDBC 操作自体はこのパラメーターに依存しませんが、結果リストのオブジェクトを作成できます。
      関連事項: