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

インタフェースJdbcRowSet

  • すべてのスーパー・インタフェース:
    AutoCloseable, Joinable, ResultSet, RowSet, Wrapper

    public interface JdbcRowSet
    extends RowSet, Joinable
    JdbcRowSetのすべての標準実装が実装しなければならない標準インタフェースです。

    1.0 概要

    結果セットをJavaBeans™コンポーネントとして使用できるようにするResultSetオブジェクトのラッパーです。 したがって、JdbcRowSetオブジェクトは、ツールがアプリケーションの組立てに利用できるBeansの1つになります。 JdbcRowSetは接続された行セットなので、JDBCテクノロジを使用可能なドライバを使用してデータベース接続を継続して保持します。また、ドライバを事実上のJavaBeansコンポーネントにします。

    常にデータベースに接続されているので、JdbcRowSetのインスタンスは、この接続上で呼出しを行い、続いてこれらをそのResultSetオブジェクト上で呼び出します。 その結果、たとえば結果セットは、Swingアプリケーションのコンポーネントになります。

    JdbcRowSetオブジェクトのもう1つの利点は、ResultSetオブジェクトにスクロール機能と更新機能を持たせることができる点にあります。 すべてのRowSetオブジェクトは、デフォルトで、スクロール機能と更新機能を備えています。 使用するドライバとデータベースが結果セットのスクロール機能や更新機能をサポートしない場合、アプリケーションはJdbcRowSetオブジェクトにResultSetオブジェクトのデータを移植し、あたかもResultSetオブジェクトのようにJdbcRowSetオブジェクトを操作することができます。

    2.0 JdbcRowSetオブジェクトの作成

    JdbcRowSetインタフェースのリファレンス実装、JdbcRowSetImplは、デフォルト・コンストラクタの実装を提供します。 新しいインスタンスは、デフォルト値で初期化されます。その後、必要に応じて新しい値を設定できます。 新しいインスタンスは、executeメソッドが呼び出されるまで、実際には機能しません。 通常、このメソッドは次の処理を行います。
    • データベースとの接続を確立する
    • PreparedStatementオブジェクトを作成し、プレースホルダー・パラメータを設定する
    • ResultSetオブジェクトを作成する文を実行する
    executeメソッドは、成功した場合、適切なprivate JdbcRowSetフィールドに次の項目を設定します。
    • Connectionオブジェクト -- 行セットとデータベース間の接続
    • PreparedStatementオブジェクト -- 結果セットを生成するクエリー
    • ResultSetオブジェクト -- 行セットのコマンドによって生成された結果セット。この結果セットから、JavaBeansコンポーネントが生成される
    これらのフィールドが設定されていない場合は、executeメソッドが正常に実行されなかったことになります。行セット上では、executeclose以外のメソッドは呼び出せません。 その他のpublicメソッドはすべて例外をスローします。

    しかし、executeメソッドの呼出しの前に、接続の確立に必要なコマンドとプロパティを設定する必要があります。 次のコードでは、JdbcRowSetImplオブジェクトを作成し、コマンドおよび接続のプロパティを設定し、プレースホルダー・パラメータを設定し、さらにexecuteメソッドを呼び出します。

         JdbcRowSetImpl jrs = new JdbcRowSetImpl();
         jrs.setCommand("SELECT * FROM TITLES WHERE TYPE = ?");
         jrs.setURL("jdbc:myDriver:myAttribute");
         jrs.setUsername("cervantes");
         jrs.setPassword("sancho");
         jrs.setString(1, "BIOGRAPHY");
         jrs.execute();
     
    変数jrsは、表TITLES (書籍の種類は伝記文学)内のすべての行を含むResultSetオブジェクトのthinラッパー、JdbcRowSetImplのインスタンスを表現するようになります。 この時点で、jrs上で呼び出される操作は、結果セット内の行(事実上のJavaBeansコンポーネント)に影響を及ぼします。

    JdbcRowSetリファレンス実装のRowSetメソッドexecuteの実装は、CachedRowSet™リファレンス実装内の実装とは異なっています。これは、RowSetオブジェクトが接続されているかどうかによって要件が異なることを考慮した結果です。

    導入されたバージョン:
    1.5
    • メソッドの詳細

      • getShowDeleted

        boolean getShowDeleted()
                        throws SQLException
        削除マークが付けられた行を現在の行とともに表示するかどうかを示すbooleanを取得します。 trueが返された場合、削除行は現在の行とともに表示されます。 falseが返された場合、削除行は現在の行のセット内に表示されません。 デフォルト値はfalseです。

        標準行セット実装は、セキュリティ上の配慮または特定の配備シナリオに適合させるため、この動作を制限することができます。 削除された行の可視性は実装によって定義され、標準の動作を表しません。

        注: 削除された行を表示すると、一部の標準JDBC RowSet実装メソッドの動作が複雑になります。 しかし、削除された行を表示する機能は、非常に専門的なアプリケーションでしか使用されません。したがって、ほとんどの行セット・ユーザーは、この余分な詳細を無視してかまいません。

        戻り値:
        削除された行を表示する場合はtrue、そうでない場合はfalse
        例外:
        SQLException - 行セット実装が、削除行が表示されたままになるかどうかを判断できない場合
        関連項目:
        setShowDeleted(boolean)
      • setShowDeleted

        void setShowDeleted​(boolean b)
                     throws SQLException
        showDeletedプロパティに、指定されたboolean値を設定します。 このプロパティにより、削除行を現在の行セット内に引き続き表示するかどうかが決定します。 値がtrueの場合、削除された行が現在の行セットとともに表示されます。 値がfalseの場合、削除された行は現在の行セット内に表示されません。

        標準行セット実装は、セキュリティ上の配慮または特定の配備シナリオに適合させるため、この動作を制限することができます。 これは定義済みの実装として残され、標準の動作を表しません。

        パラメータ:
        b - 削除された行を表示する場合はtrue、そうでない場合はfalse
        例外:
        SQLException - 行セット実装が、削除行の表示または非表示の設定をリセットできない場合
        関連項目:
        getShowDeleted()
      • getRowSetWarnings

        RowSetWarning getRowSetWarnings()
                                 throws SQLException
        このJdbcRowSetオブジェクトに関する呼出しによって報告される最初の警告を取得します。 JdbcRowSetオブジェクト上に2番目の警告が報告された場合、この警告は最初の警告にチェーンされます。よって、2番目の警告は、最初の警告に対してRowSetWarning.getNextWarningメソッドを呼び出すことで取得できます。 このJdbcRowSetオブジェクト上の後続の警告は、RowSetWarning.getNextWarningメソッドによって返されるRowSetWarningオブジェクトにチェーンされます。 警告チェーンは、新しい行が読み込まれるたびに自動的にクリアされます。 クローズ済のRowSetオブジェクトでこのメソッドを呼び出すことはできません。そうした場合にはSQLExceptionがスローされます。

        JdbcRowSetオブジェクトは、常にデータ・ソースに接続されているので、アクティブなStatementConnection、およびResultSetインスタンスの存在に依存することができます。 つまり、アプリケーションは、これらが提供するgetNextWarningメソッドを呼びだすことで、追加のSQLWarning通知を取得できることになります。 CachedRowSetオブジェクトなど、未接続のRowsetオブジェクトは、これらのgetNextWarningメソッドにアクセスできません。

        戻り値:
        このJdbcRowSetオブジェクト上で報告された最初のRowSetWarningオブジェクト。ない場合はnull
        例外:
        SQLException - このメソッドがクローズされたJdbcRowSetオブジェクトで呼び出された場合
        関連項目:
        RowSetWarning
      • commit

        void commit()
             throws SQLException
        JdbcRowSetには、ResultSetConnectionオブジェクトか、コンストラクタに渡されるJDBCプロパティが含まれます。 このメソッドは、Connectionコミット・メソッドをラップして、柔軟な自動コミットまたは非自動コミットのトランザクション制御サポートを提供します。

        直前のコミット/ロールバック以降に行われた変更をすべて有効とし、このConnectionオブジェクトが現在保持するデータベース・ロックをすべて解除します。 このメソッドは自動コミット・モードが無効になっているときしか使用できません。

        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのJdbcRowSet内のConnectionオブジェクトが自動コミット・モードである場合
        関連項目:
        Connection.setAutoCommit(boolean)
      • getAutoCommit

        boolean getAutoCommit()
                       throws SQLException
        JdbcRowSetには、元のResultSetConnectionオブジェクトか、それに渡されるJDBCプロパティが含まれます。 このメソッドは、ConnectiongetAutoCommitメソッドをラップして、アプリケーションがJdbcRowSetトランザクションの動作を確認できるようにします。

        この接続の自動コミット・モードを指定された状態に設定します。 接続が自動コミット・モードの場合、そのすべてのSQL文は実行され、個別のトランザクションとしてコミットされます。 そうでない場合、そのSQL文は、commitメソッドまたはrollbackメソッドへの呼出しによって終了されるトランザクションにグループ化されます。 デフォルトでは、新しい接続は自動コミット・モードです。

        戻り値:
        自動コミットが有効な場合はtrue、そうでない場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合
        関連項目:
        Connection.getAutoCommit()
      • setAutoCommit

        void setAutoCommit​(boolean autoCommit)
                    throws SQLException
        JdbcRowSetには、元のResultSetConnectionオブジェクトか、それに渡されるJDBCプロパティが含まれます。 このメソッドは、ConnectiongetAutoCommitメソッドをラップして、アプリケーションがJdbcRowSetトランザクションの動作を設定できるようにします。

        このConnectionオブジェクトの現在の自動コミット・モードを設定します。

        パラメータ:
        autoCommit - 自動コミットを有効にする場合はtrue、無効にする場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合
        関連項目:
        Connection.setAutoCommit(boolean)
      • rollback

        void rollback()
               throws SQLException
        JdbcRowSetには、元のResultSetConnectionオブジェクトか、それに渡されるJDBCプロパティが含まれます。 現在のトランザクションにおけるすべての変更を取り消し、現在このConnectionオブジェクトが保持しているすべてのデータベース・ロックを解除します。 このメソッドは自動コミット・モードが無効になっているときしか使用できません。
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのJdbcRowSet内のConnectionオブジェクトが自動コミット・モードである場合。
        関連項目:
        rollback(Savepoint)
      • rollback

        void rollback​(Savepoint s)
               throws SQLException
        JdbcRowSetには、元のResultSetConnectionオブジェクトか、それに渡されるJDBCプロパティが含まれます。 現在のトランザクションから最後のセーブポイントの設定までのすべての変更を取り消し、現在このConnectionオブジェクトが保持しているすべてのデータベース・ロックを解除します。 このメソッドは自動コミット・モードが無効になっているときしか使用できません。
        パラメータ:
        s - ロールバック先となるSavepoint
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのJdbcRowSet内のConnectionオブジェクトが自動コミット・モードである場合。
        関連項目:
        rollback()