クラス RdbmsOperation

java.lang.ObjectSE
org.springframework.jdbc.object.RdbmsOperation
実装されたすべてのインターフェース:
InitializingBean
既知の直属サブクラス
SqlCallSqlOperation

public abstract class RdbmsOperation extends ObjectSE implements InitializingBean
「RDBMS 操作」は、クエリ、更新、ストアドプロシージャの呼び出しを表すマルチスレッドの再利用可能なオブジェクトです。コマンドは再利用できないため、RDBMS 操作はコマンドではありません。ただし、execute メソッドはコマンドを引数として取る場合があります。サブクラスは JavaBeans である必要があり、簡単に構成できます。

このクラスとサブクラスは、org.springframework.dao パッケージで定義されたランタイム例外をスローします(org.springframework.jdbc.core パッケージによってスローされたものであり、このパッケージのクラスが内部 JDBC オペレーションを実行するために内部で使用します)。

サブクラスは、compile() メソッドを呼び出す前に SQL を設定し、パラメーターを追加する必要があります。パラメーターが追加される順序は重要です。その後、適切な execute または update メソッドを呼び出すことができます。

作成者:
Rod Johnson, Juergen Hoeller
関連事項:
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected final Log
    サブクラスで利用可能なロガー。
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    Bean ファクトリで使用した場合、コンパイルを保証します。
    protected boolean
    この操作が、指定されているが実際には使用されていない追加のパラメーターを受け入れるかどうかを返します。
    protected void
    この操作がすでにコンパイルされているかどうかを確認します。まだコンパイルされていない場合は、遅延してコンパイルします。
    final void
    このクエリをコンパイルします。
    protected abstract void
    サブクラスは、独自のコンパイルを実行するためにこのテンプレートメソッドを実装する必要があります。
    void
    この操作のパラメーターを宣言します。
    protected ListSE<SqlParameter>
    宣言された SqlParameter オブジェクトのリストを返します。
    自動生成されたキーの列名を返します。
    この操作オブジェクトが使用する JdbcTemplate を返します。
    int
    ステートメントが特定の型の ResultSet を返すかどうかを返します。
    サブクラスは、必要に応じてこれをオーバーライドして動的 SQL を提供できますが、SQL は通常、setSql(java.lang.String) メソッドを呼び出すか、サブクラスコンストラクターで設定されます。
    boolean
    この操作は「コンパイル」されていますか? JDO の場合と同様に、コンパイルとは、操作が完全に構成され、使用する準備ができていることを意味します。
    boolean
    ステートメントが自動生成キーを返すことができるかどうかを返します。
    boolean
    ステートメントが更新可能な ResultSets を返すかどうかを返します。
    protected StringSE
    実際に使用するために構成済み SQL を解決します。
    void
    接続を取得する JDBC DataSourceSE を設定します。
    void
    setFetchSize(int fetchSize)
    この RDBMS 操作のフェッチサイズを設定します。
    void
    自動生成されたキーの列名を設定します。
    void
    複数の RdbmsOperations で同じ JdbcTemplate を使用する場合に、より一般的に使用される setDataSource(javax.sql.DataSource) の代替。
    void
    setMaxRows(int maxRows)
    この RDBMS 操作の最大行数を設定します。
    void
    1 つ以上の宣言されたパラメーターを追加します。
    void
    setQueryTimeout(int queryTimeout)
    この RDBMS 操作が実行するステートメントのクエリタイムアウトを設定します。
    void
    setResultSetType(int resultSetType)
    特定の型の ResultSet を返すステートメントを使用するかどうかを設定します。
    void
    setReturnGeneratedKeys(boolean returnGeneratedKeys)
    準備されたステートメントが自動生成キーを返すことができるかどうかを設定します。
    void
    この操作によって実行される SQL を設定します。
    void
    setTypes(int[] types)
    java.sql.Types クラスで定義されている SQL 型のみを指定して、匿名パラメーターを追加します。
    void
    setUpdatableResults(boolean updatableResults)
    更新可能な ResultSets を返すことができるステートメントを使用するかどうかを設定します。
    protected boolean
    この種類の操作で BLOB/CLOB パラメーターがサポートされているかどうかを返します。
    protected void
    宣言されたパラメーターに基づいて、execute メソッドに渡された名前付きパラメーターを検証します。
    protected void
    宣言されたパラメーターに基づいて、execute メソッドに渡されたパラメーターを検証します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • logger

      protected final Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • RdbmsOperation

      public RdbmsOperation()
  • メソッドの詳細

    • setJdbcTemplate

      public void setJdbcTemplate(JdbcTemplate jdbcTemplate)
      複数の RdbmsOperations で同じ JdbcTemplate を使用する場合に、より一般的に使用される setDataSource(javax.sql.DataSource) の代替。これは、JdbcTemplate に SQLExceptionTranslator などの特別な構成があり、再利用する場合に適しています。
    • getJdbcTemplate

      public JdbcTemplate getJdbcTemplate()
      この操作オブジェクトが使用する JdbcTemplate を返します。
    • setDataSource

      public void setDataSource(DataSourceSE dataSource)
      接続を取得する JDBC DataSourceSE を設定します。
      関連事項:
    • setFetchSize

      public void setFetchSize(int fetchSize)
      この RDBMS 操作のフェッチサイズを設定します。これは、大きな結果セットを処理する場合に重要です。これをデフォルト値よりも高く設定すると、処理速度が向上しますが、メモリが消費されます。これを低く設定すると、アプリケーションによって決して読み取られない行データの転送を回避できます。

      デフォルトは -1 で、ドライバーのデフォルトを使用することを示します。

      関連事項:
    • setMaxRows

      public void setMaxRows(int maxRows)
      この RDBMS 操作の最大行数を設定します。これは、データベースまたは JDBC ドライバーで結果セット全体を読み取って保持することを避けるために、大規模な結果セットのサブセットを処理する場合に重要です。

      デフォルトは -1 で、ドライバーのデフォルトを使用することを示します。

      関連事項:
    • setQueryTimeout

      public void setQueryTimeout(int queryTimeout)
      この RDBMS 操作が実行するステートメントのクエリタイムアウトを設定します。

      デフォルトは -1 で、JDBC ドライバーのデフォルトを使用することを示します。

      メモ: ここで指定されたタイムアウトは、トランザクションレベルで指定されたタイムアウトを持つトランザクション内で実行すると、残りのトランザクションタイムアウトによってオーバーライドされます。

    • setResultSetType

      public void setResultSetType(int resultSetType)
      特定の型の ResultSet を返すステートメントを使用するかどうかを設定します。
      パラメーター:
      resultSetType - ResultSet 型
      関連事項:
    • getResultSetType

      public int getResultSetType()
      ステートメントが特定の型の ResultSet を返すかどうかを返します。
    • setUpdatableResults

      public void setUpdatableResults(boolean updatableResults)
      更新可能な ResultSets を返すことができるステートメントを使用するかどうかを設定します。
      関連事項:
    • isUpdatableResults

      public boolean isUpdatableResults()
      ステートメントが更新可能な ResultSets を返すかどうかを返します。
    • setReturnGeneratedKeys

      public void setReturnGeneratedKeys(boolean returnGeneratedKeys)
      準備されたステートメントが自動生成キーを返すことができるかどうかを設定します。
      関連事項:
    • isReturnGeneratedKeys

      public boolean isReturnGeneratedKeys()
      ステートメントが自動生成キーを返すことができるかどうかを返します。
    • setGeneratedKeysColumnNames

      public void setGeneratedKeysColumnNames(@Nullable StringSE... names)
      自動生成されたキーの列名を設定します。
      関連事項:
    • getGeneratedKeysColumnNames

      @Nullable public StringSE[] getGeneratedKeysColumnNames()
      自動生成されたキーの列名を返します。
    • setSql

      public void setSql(@Nullable StringSE sql)
      この操作によって実行される SQL を設定します。
    • getSql

      @Nullable public StringSE getSql()
      サブクラスは、必要に応じてこれをオーバーライドして動的 SQL を提供できますが、SQL は通常、setSql(java.lang.String) メソッドを呼び出すか、サブクラスコンストラクターで設定されます。
    • resolveSql

      protected StringSE resolveSql()
      実際に使用するために構成済み SQL を解決します。
      戻り値:
      SQL (非 null)
      導入:
      5.0
    • setTypes

      public void setTypes(@Nullable int[] types) throws InvalidDataAccessApiUsageException
      java.sql.Types クラスで定義されている SQL 型のみを指定して、匿名パラメーターを追加します。

      パラメーターの順序は重要です。このメソッドは、declareParameter(org.springframework.jdbc.core.SqlParameter) メソッドの代替であり、通常は推奨されます。

      パラメーター:
      types - java.sql.Types クラスで定義されている SQL 型の配列
      例外:
      InvalidDataAccessApiUsageException - 操作がすでにコンパイルされている場合
    • declareParameter

      public void declareParameter(SqlParameter param) throws InvalidDataAccessApiUsageException
      この操作のパラメーターを宣言します。

      位置パラメーターを使用する場合、このメソッドが呼び出される順序は重要です。ここで、名前付き SqlParameter オブジェクトで名前付きパラメーターを使用する場合は重要ではありません。ここで、名前のないパラメーターを名前のない SqlParameter オブジェクトと組み合わせて使用する場合も、重要です。

      パラメーター:
      param - 追加する SqlParameter これは、SQL 型と(オプションで)パラメーターの名前を指定します。ここでは通常、SqlParameter クラス自体を使用し、そのサブクラスは使用しないことに注意してください。
      例外:
      InvalidDataAccessApiUsageException - 操作がすでにコンパイルされているため、それ以上構成できない場合
    • setParameters

      public void setParameters(SqlParameter... parameters)
      1 つ以上の宣言されたパラメーターを追加します。Bean ファクトリで使用される場合、この操作を構成するために使用されます。各パラメーターは、SQL 型と(オプションで)パラメーターの名前を指定します。
      パラメーター:
      parameters - 宣言された SqlParameter オブジェクトを含む配列
      関連事項:
      • declaredParameters
    • getDeclaredParameters

      protected ListSE<SqlParameter> getDeclaredParameters()
      宣言された SqlParameter オブジェクトのリストを返します。
    • afterPropertiesSet

      public void afterPropertiesSet()
      Bean ファクトリで使用した場合、コンパイルを保証します。
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • compile

      public final void compile() throws InvalidDataAccessApiUsageException
      このクエリをコンパイルします。コンパイルの後続の試行を無視します。
      例外:
      InvalidDataAccessApiUsageException - オブジェクトが正しく初期化されていない場合(DataSource が提供されていない場合など)
    • isCompiled

      public boolean isCompiled()
      この操作は「コンパイル」されていますか? JDO の場合と同様に、コンパイルとは、操作が完全に構成され、使用する準備ができていることを意味します。コンパイルの正確な意味は、サブクラスによって異なります。
      戻り値:
      この操作がコンパイルされ、使用する準備ができているかどうか
    • checkCompiled

      protected void checkCompiled()
      この操作がすでにコンパイルされているかどうかを確認します。まだコンパイルされていない場合は、遅延してコンパイルします。

      validateParameters によって自動的に呼び出されます。

      関連事項:
    • validateParameters

      protected void validateParameters(@Nullable ObjectSE[] parameters) throws InvalidDataAccessApiUsageException
      宣言されたパラメーターに基づいて、execute メソッドに渡されたパラメーターを検証します。サブクラスは、すべての executeQuery() または update() メソッドの前にこのメソッドを呼び出す必要があります。
      パラメーター:
      parameters - 提供されるパラメーター (null の場合があります)
      例外:
      InvalidDataAccessApiUsageException - パラメーターが無効な場合
    • validateNamedParameters

      protected void validateNamedParameters(@Nullable MapSE<StringSE,?> parameters) throws InvalidDataAccessApiUsageException
      宣言されたパラメーターに基づいて、execute メソッドに渡された名前付きパラメーターを検証します。サブクラスは、すべての executeQuery() または update() メソッドの前にこのメソッドを呼び出す必要があります。
      パラメーター:
      parameters - 提供されるパラメーターマップ (null の場合があります)
      例外:
      InvalidDataAccessApiUsageException - パラメーターが無効な場合
    • compileInternal

      protected abstract void compileInternal() throws InvalidDataAccessApiUsageException
      サブクラスは、独自のコンパイルを実行するためにこのテンプレートメソッドを実装する必要があります。この基本クラスのコンパイルが完了した後に呼び出されます。

      サブクラスは、SQL と DataSource が提供されていると想定できます。

      例外:
      InvalidDataAccessApiUsageException - サブクラスが適切に構成されていない場合
    • supportsLobParameters

      protected boolean supportsLobParameters()
      この種類の操作で BLOB/CLOB パラメーターがサポートされているかどうかを返します。

      デフォルトは true です。

    • allowsUnusedParameters

      protected boolean allowsUnusedParameters()
      この操作が、指定されているが実際には使用されていない追加のパラメーターを受け入れるかどうかを返します。特にパラメーターマップに適用されます。

      デフォルトは false です。

      関連事項: