モジュール java.sql
パッケージ java.sql

インタフェースWrapper

  • 既知のすべてのサブインタフェース:
    CachedRowSet, CallableStatement, Connection, DatabaseMetaData, DataSource, FilteredRowSet, JdbcRowSet, JoinRowSet, ParameterMetaData, PreparedStatement, ResultSet, ResultSetMetaData, RowSet, RowSetMetaData, Statement, SyncResolver, WebRowSet
    既知のすべての実装クラス:
    RowSetMetaDataImpl

    public interface Wrapper
    委譲インスタンスが実際はプロキシ・クラスであるときにそのインスタンスを取得できる、JDBCクラスのインタフェースです。

    ラッパー・パターンは、多くのJDBCドライバ実装によって使用され、データ・ソースに特化した従来のJDBC APIの域を超えた拡張性を提供します。 開発者は、実際のリソースを表すプロキシ・クラスのインスタンスとしてラップされた(委譲)これらのリソースにアクセスすることが必要な場合があります。 このインタフェースは、プロキシで表されるこのようなラップされたリソースにアクセスする標準のしくみを記述し、リソースの委譲に直接アクセスできます。

    導入されたバージョン:
    1.6
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド 
      修飾子と型 メソッド 説明
      boolean isWrapperFor​(Class<?> iface)
      これが、指定されたインタフェースを実装している場合や、そのようなオブジェクトの直接的または間接的なラッパーである場合は、trueを返します。
      <T> T unwrap​(Class<T> iface)
      標準以外のメソッド、またはプロキシによって公開されない標準メソッドにアクセスできるようにするために、指定されたインタフェースを実装しているオブジェクトを返します。
    • メソッドの詳細

      • unwrap

        <T> T unwrap​(Class<T> iface)
              throws SQLException
        標準以外のメソッド、またはプロキシによって公開されない標準メソッドにアクセスできるようにするために、指定されたインタフェースを実装しているオブジェクトを返します。 レシーバがこのインタフェースを実装している場合、結果はレシーバ、またはレシーバのプロキシになります。 レシーバがラッパーであり、ラップされたオブジェクトがインタフェースを実装している場合、結果はラップされたオブジェクト、またはそのプロキシです。 それ以外の場合は、ラップされたオブジェクト、またはその結果のプロキシに対してunwrapを再帰的に呼び出した結果が返されます。 レシーバがインタフェースを実装しておらず、ラッパーでもない場合は、SQLExceptionがスローされます。
        型パラメータ:
        T - このClassオブジェクトでモデル化されるクラスの型
        パラメータ:
        iface - 結果が実装している必要のあるインタフェースを定義するクラス。
        戻り値:
        インタフェースを実装しているオブジェクト。 実際に実装しているオブジェクトのプロキシが返される場合もある。
        例外:
        SQLException - インタフェースを実装しているオブジェクトが見つからない場合
        導入されたバージョン:
        1.6
      • isWrapperFor

        boolean isWrapperFor​(Class<?> iface)
                      throws SQLException
        これが、指定されたインタフェースを実装している場合や、そのようなオブジェクトの直接的または間接的なラッパーである場合は、trueを返します。 それ以外の場合はfalseを返します。 これがインタフェースを実装している場合は、trueを返します。あるいは、これがラッパーである場合は、ラップされたオブジェクトに対してisWrapperForを再帰的に呼び出した結果を返します。 これがインタフェースを実装しておらず、ラッパーでもない場合は、falseを返します。 このメソッドはunwrapの低コスト処理として実装すべきもので、呼出し側はこのメソッドを使用することにより、失敗する可能性もある高負荷のunwrap呼出しを避けることができます。 このメソッドからtrueが返される場合は、同じ引数を使用したunwrap呼び出しも成功するはすです。
        パラメータ:
        iface - インタフェースを定義するクラス。
        戻り値:
        これがインタフェースを実装している場合、またはそのようなオブジェクトの直接的または間接的なラッパーである場合は、true。
        例外:
        SQLException - これが指定されたインタフェースを持つオブジェクトのラッパーかどうかを判定する際にエラーが発生した場合。
        導入されたバージョン:
        1.6