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

インタフェースStatement

  • すべてのスーパー・インタフェース:
    AutoCloseable, Wrapper
    既知のすべてのサブインタフェース:
    CallableStatement, PreparedStatement

    public interface Statement
    extends Wrapper, AutoCloseable

    静的SQL文を実行し、作成された結果を返すために使用されるオブジェクトです。

    デフォルトでは、Statementオブジェクトごとに、同時に開くことができるResultSetオブジェクトは1つだけです。 したがって、1つのResultSetオブジェクトの読込みが、別の読込みにより割り込まれると、各々は異なったStatementオブジェクトによって生成されたことになります。 Statementインタフェースのすべての実行メソッドは、文の現在のResultSetオブジェクトでオープンされているものが存在すれば、それを暗黙にクローズします。

    導入されたバージョン:
    1.1
    関連項目:
    Connection.createStatement()ResultSet
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static int CLOSE_ALL_RESULTS
      getMoreResultsが呼び出されたときに、直前までオープンされていたすべてのResultSetオブジェクトがクローズされることを示す定数です。
      static int CLOSE_CURRENT_RESULT
      getMoreResultsが呼び出されたときに、現在のResultSetオブジェクトがクローズされることを示す定数です。
      static int EXECUTE_FAILED
      バッチ文の実行中にエラーが発生したことを示す定数です。
      static int KEEP_CURRENT_RESULT
      getMoreResultsが呼び出されたときに、現在のResultSetオブジェクトがクローズされないことを示す定数です。
      static int NO_GENERATED_KEYS
      生成されたキーを検索可能にしないことを示す定数です。
      static int RETURN_GENERATED_KEYS
      生成されたキーを検索可能にすることを示す定数です。
      static int SUCCESS_NO_INFO
      バッチ文が正常に実行されたが、影響を受けた行数が不明なことを示す定数です。
    • メソッドのサマリー

      すべてのメソッド インスタンス・メソッド 抽象メソッド デフォルト・メソッド 
      修飾子と型 メソッド 説明
      void addBatch​(String sql)
      このStatementオブジェクトの現在のコマンドのリストに、指定されたSQLコマンドを追加します。
      void cancel()
      DBMSおよびドライバの両方がSQL文の終了をサポートする場合に、このStatementオブジェクトを取り消します。
      void clearBatch()
      このStatementオブジェクトの現在のSQLコマンド・リストを空にします。
      void clearWarnings()
      このStatementオブジェクトに関して報告されたすべての警告をクリアします。
      void close()
      自動的にクローズされるときにStatementオブジェクトのデータベースとJDBCリソースが解放されるのを待つのではなく、ただちにそれらを解放します。
      void closeOnCompletion()
      このStatementに依存するすべての結果セットがクローズされたときにこのStatementがクローズされることを示します。
      default String enquoteIdentifier​(String identifier, boolean alwaysQuote)
      SQL識別子を返します。
      default String enquoteLiteral​(String val)
      単一引用符で囲まれたStringを返します。
      default String enquoteNCharLiteral​(String val)
      一重引用符で囲まれ、大文字のNで始まる国別文字セット・リテラルを表すStringを返します。
      boolean execute​(String sql)
      複数の結果を返す可能性のある指定されたSQL文を実行します。
      boolean execute​(String sql, int autoGeneratedKeys)
      複数の結果を返す可能性のある指定されたSQL文を実行し、すべての自動生成キーを検索可能にするかどうかについてドライバに通知します。
      boolean execute​(String sql, int[] columnIndexes)
      複数の結果を返す可能性のある指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。
      boolean execute​(String sql, String[] columnNames)
      複数の結果を返す可能性のある指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。
      int[] executeBatch()
      コマンドのバッチをデータベースに送信して実行し、すべてのコマンドが正常に実行されると、更新カウントの配列を返します。
      default long[] executeLargeBatch()
      コマンドのバッチをデータベースに送信して実行し、すべてのコマンドが正常に実行されると、更新カウントの配列を返します。
      default long executeLargeUpdate​(String sql)
      指定されたSQL文を実行します。SQL文は、INSERT文、UPDATE文、DELETE文、またはSQL DDL文のような何も返さないSQL文の場合があります。
      default long executeLargeUpdate​(String sql, int autoGeneratedKeys)
      指定されたSQL文を実行し、このStatementオブジェクトによって生成された自動生成キーを検索可能にするかどうかについて指定されたフラグでドライバに通知します。
      default long executeLargeUpdate​(String sql, int[] columnIndexes)
      指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。
      default long executeLargeUpdate​(String sql, String[] columnNames)
      指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。
      ResultSet executeQuery​(String sql)
      単一のResultSetオブジェクトを返す、指定されたSQL文を実行します。
      int executeUpdate​(String sql)
      指定されたSQL文を実行します。SQL文は、INSERT文、UPDATE文、DELETE文、またはSQL DDL文のような何も返さないSQL文の場合があります。
      int executeUpdate​(String sql, int autoGeneratedKeys)
      指定されたSQL文を実行し、このStatementオブジェクトによって生成された自動生成キーを検索可能にするかどうかについて指定されたフラグでドライバに通知します。
      int executeUpdate​(String sql, int[] columnIndexes)
      指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。
      int executeUpdate​(String sql, String[] columnNames)
      指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。
      Connection getConnection()
      このStatementオブジェクトを生成したConnectionオブジェクトを取得します。
      int getFetchDirection()
      このStatementオブジェクトから生成された結果セットのデフォルトである、データベース表から行をフェッチする方向を取得します。
      int getFetchSize()
      このStatementオブジェクトから生成されたResultSetオブジェクトのデフォルトのフェッチ・サイズである、結果セットの行数を取得します。
      ResultSet getGeneratedKeys()
      このStatementオブジェクトを実行した結果として作成された自動生成キーを取得します。
      default long getLargeMaxRows()
      このStatementオブジェクトによって生成されるResultSetオブジェクトに含めることのできる最大行数を取得します。
      default long getLargeUpdateCount()
      更新カウントとして現在の結果を取得します。結果がResultSetオブジェクトであるか、または結果がない場合は -1を返します。
      int getMaxFieldSize()
      このStatementオブジェクトによって生成されるResultSetオブジェクトの文字およびバイナリの各列値に対し返される最大バイト数を取得します。
      int getMaxRows()
      このStatementオブジェクトによって生成されるResultSetオブジェクトに含めることのできる最大行数を取得します。
      boolean getMoreResults()
      Statementオブジェクトの次の結果に移動します。この結果がResultSetオブジェクトの場合はtrueを返し、getResultSetメソッドで得られた現在のResultSetオブジェクトをすべて暗黙にクローズします。
      boolean getMoreResults​(int current)
      Statementオブジェクトの次の結果に移動します。指定されたフラグによって指定された命令に従ってすべての現在のResultSetオブジェクトを処理し、次の結果がResultSetオブジェクトの場合はtrueを返します。
      int getQueryTimeout()
      ドライバがStatementオブジェクトの実行を待つ秒数を取得します。
      ResultSet getResultSet()
      ResultSetオブジェクトとして現在の結果を取得します。
      int getResultSetConcurrency()
      このStatementオブジェクトから生成されたResultSetオブジェクトの結果セットの並行処理を取得します。
      int getResultSetHoldability()
      このStatementオブジェクトから生成されたResultSetオブジェクトの結果セットの保持機能を取得します。
      int getResultSetType()
      このStatementオブジェクトから生成されたResultSetオブジェクトの結果セットのタイプを取得します。
      int getUpdateCount()
      更新カウントとして現在の結果を取得します。結果がResultSetオブジェクトであるか、または結果がない場合は -1を返します。
      SQLWarning getWarnings()
      このStatementオブジェクトに関する呼出しによって報告される最初の警告を取得します。
      boolean isClosed()
      このStatementオブジェクトがクローズされているかどうかを取得します。
      boolean isCloseOnCompletion()
      このStatementに依存するすべての結果セットがクローズされたときにこのStatementがクローズされるかどうかを示す値を取得します。
      boolean isPoolable()
      Statementがプール可能かどうかを示す値を返します。
      default boolean isSimpleIdentifier​(String identifier)
      identifierが単純なSQL識別子かどうかを取得します。
      void setCursorName​(String name)
      後続のStatementオブジェクトのexecuteメソッドによって使用されるSQLカーソル名を指定されたStringに設定します。
      void setEscapeProcessing​(boolean enable)
      エスケープの処理をオンまたはオフに設定します。
      void setFetchDirection​(int direction)
      Statementオブジェクトを使用して作成されたResultSetオブジェクトの行が処理される方向についてのヒントをドライバに提供します。
      void setFetchSize​(int rows)
      このStatementで作成されたResultSetオブジェクトでより多くの行が必要なときにデータベースから取り出す必要がある行数についてのヒントをJDBCドライバに提供します。
      default void setLargeMaxRows​(long max)
      このStatementオブジェクトで作成された任意のResultSetオブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。
      void setMaxFieldSize​(int max)
      このStatementオブジェクトによって生成されるResultSetオブジェクトの文字およびバイナリの各列値に対し返される最大バイト数の制限を設定します。
      void setMaxRows​(int max)
      このStatementオブジェクトで作成された任意のResultSetオブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。
      void setPoolable​(boolean poolable)
      Statementをプールすること、またはプールしないことを要求します。
      void setQueryTimeout​(int seconds)
      ドライバがStatementオブジェクトの実行を待つ秒数を、指定された秒数に設定します。
    • フィールドの詳細

      • CLOSE_CURRENT_RESULT

        static final int CLOSE_CURRENT_RESULT
        getMoreResultsが呼び出されたときに、現在のResultSetオブジェクトがクローズされることを示す定数です。
        導入されたバージョン:
        1.4
        関連項目:
        定数フィールド値
      • KEEP_CURRENT_RESULT

        static final int KEEP_CURRENT_RESULT
        getMoreResultsが呼び出されたときに、現在のResultSetオブジェクトがクローズされないことを示す定数です。
        導入されたバージョン:
        1.4
        関連項目:
        定数フィールド値
      • CLOSE_ALL_RESULTS

        static final int CLOSE_ALL_RESULTS
        getMoreResultsが呼び出されたときに、直前までオープンされていたすべてのResultSetオブジェクトがクローズされることを示す定数です。
        導入されたバージョン:
        1.4
        関連項目:
        定数フィールド値
      • SUCCESS_NO_INFO

        static final int SUCCESS_NO_INFO
        バッチ文が正常に実行されたが、影響を受けた行数が不明なことを示す定数です。
        導入されたバージョン:
        1.4
        関連項目:
        定数フィールド値
      • EXECUTE_FAILED

        static final int EXECUTE_FAILED
        バッチ文の実行中にエラーが発生したことを示す定数です。
        導入されたバージョン:
        1.4
        関連項目:
        定数フィールド値
      • RETURN_GENERATED_KEYS

        static final int RETURN_GENERATED_KEYS
        生成されたキーを検索可能にすることを示す定数です。
        導入されたバージョン:
        1.4
        関連項目:
        定数フィールド値
      • NO_GENERATED_KEYS

        static final int NO_GENERATED_KEYS
        生成されたキーを検索可能にしないことを示す定数です。
        導入されたバージョン:
        1.4
        関連項目:
        定数フィールド値
    • メソッドの詳細

      • executeQuery

        ResultSet executeQuery​(String sql)
                        throws SQLException
        単一のResultSetオブジェクトを返す、指定されたSQL文を実行します。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - データベースに送られるSQL文。通常静的SQL SELECT
        戻り値:
        指定されたクエリーによって作成されたデータを含むResultSetオブジェクト。nullにはならない
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、指定されたSQL文が単一のResultSetオブジェクト以外の何も生成しない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
      • executeUpdate

        int executeUpdate​(String sql)
                   throws SQLException
        指定されたSQL文を実行します。SQL文は、INSERT文、UPDATE文、DELETE文、またはSQL DDL文のような何も返さないSQL文の場合があります。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - SQL INSERT文、UPDATE文、またはDELETE文のようなSQLデータ操作言語(DML)文、あるいはDDL文のような何も返さないSQL文
        戻り値:
        (1) SQLデータ操作言語(DML)文の場合は行数、(2)何も返さないSQL文の場合は0
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、または指定されたSQL文がResultSetオブジェクトを生成した場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
      • close

        void close()
            throws SQLException
        自動的にクローズされるときにStatementオブジェクトのデータベースとJDBCリソースが解放されるのを待つのではなく、ただちにそれらを解放します。 データベースのリソースを占有するのを避けるために、通常は、作業が終了したらすぐにリソースを解放するようにしてください。

        すでにクローズされたStatementオブジェクトでcloseメソッドを呼び出すと、操作は行われません。

        注: Statementオブジェクトがクローズされるとき、その現在のResultSetオブジェクトが存在すれば、それもクローズされます。

        定義:
        close、インタフェース: AutoCloseable
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合
      • getMaxFieldSize

        int getMaxFieldSize()
                     throws SQLException
        このStatementオブジェクトによって生成されるResultSetオブジェクトの文字およびバイナリの各列値に対し返される最大バイト数を取得します。 この制限値は、BINARYVARBINARYLONGVARBINARYCHARVARCHARNCHARNVARCHARLONGNVARCHAR、およびLONGVARCHARの各列だけに適用されます。 制限値を超えたデータは通知なしに破棄されます。
        戻り値:
        文字値およびバイナリ値を格納する列に対する現在の列サイズの制限値。ゼロは無制限を意味する
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        関連項目:
        setMaxFieldSize(int)
      • setMaxFieldSize

        void setMaxFieldSize​(int max)
                      throws SQLException
        このStatementオブジェクトによって生成されるResultSetオブジェクトの文字およびバイナリの各列値に対し返される最大バイト数の制限を設定します。 この制限値は、BINARYVARBINARYLONGVARBINARYCHARVARCHARNCHARNVARCHARLONGNVARCHAR、およびLONGVARCHARの各フィールドだけに適用されます。 制限値を超えたデータは通知なしに破棄されます。 移植性を最大限にするには、256より大きい値を使用します。
        パラメータ:
        max - バイト単位の新しい列サイズの制限値。ゼロは無制限を意味する
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、または条件max >= 0が満たされない場合
        関連項目:
        getMaxFieldSize()
      • getMaxRows

        int getMaxRows()
                throws SQLException
        このStatementオブジェクトによって生成されるResultSetオブジェクトに含めることのできる最大行数を取得します。 制限値を超えた行は通知なしに除外されます。
        戻り値:
        このStatementオブジェクトによって生成されるResultSetオブジェクトの現在の最大行数。ゼロは無制限を意味する
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        関連項目:
        setMaxRows(int)
      • setMaxRows

        void setMaxRows​(int max)
                 throws SQLException
        このStatementオブジェクトで作成された任意のResultSetオブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。 制限値を超えた行は通知なしに除外されます。
        パラメータ:
        max - 新しい最大行数の制限値。ゼロは無制限を意味する
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、または条件max >= 0が満たされない場合
        関連項目:
        getMaxRows()
      • setEscapeProcessing

        void setEscapeProcessing​(boolean enable)
                          throws SQLException
        エスケープの処理をオンまたはオフに設定します。 エスケープ・スキャニングがオンの場合(デフォルト)、ドライバはSQL文をデータベースに送る前にエスケープ置換えを実行します。

        ConnectionおよびDataSourceのプロパティescapeProcessingを使用して、デフォルトのエスケープ処理の動作を変更できます。 true (デフォルト)を指定すると、すべてのStatementオブジェクトのエスケープ処理が有効になります。 falseを指定すると、すべてのStatementオブジェクトのエスケープ処理が無効になります。 setEscapeProcessingメソッドを使用して、個々のStatementオブジェクトに対するエスケープ処理の動作を指定できます。

        注: 用意された文は、通常呼び出す前に構文解析されているので、PreparedStatementsオブジェクトに対するエスケープ処理を無効にしても効果はありません。

        パラメータ:
        enable - エスケープ処理を有効にする場合はtrue、無効にする場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
      • getQueryTimeout

        int getQueryTimeout()
                     throws SQLException
        ドライバがStatementオブジェクトの実行を待つ秒数を取得します。 この制限を超えると、SQLExceptionがスローされます。
        戻り値:
        現在のクエリー・タイムアウトの制限値の秒数。ゼロは無制限を意味する
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        関連項目:
        setQueryTimeout(int)
      • setQueryTimeout

        void setQueryTimeout​(int seconds)
                      throws SQLException
        ドライバがStatementオブジェクトの実行を待つ秒数を、指定された秒数に設定します。 デフォルトでは、実行中の文が完了するまでに許可されている時間に制限はありません。 この制限時間を経過すると、SQLTimeoutExceptionがスローされます。 JDBCドライバは、この制限をexecuteexecuteQueryexecuteUpdateの各メソッドに適用する必要があります。

        注: JDBCドライバ実装は、この制限をResultSetメソッドに適用することもあります(詳細は、ドライバ・ベンダーのマニュアルを参照してください)。

        注: Statementバッチ処理の場合、これは、タイム・アウトがaddBatchメソッドによって追加された個々のSQLコマンドに適用されるか、executeBatchメソッドによって呼び出されたSQLコマンドのバッチ全体に適用されるかに関して定義される実装です(詳細については、ドライバ・ベンダーのドキュメントを参照してください)。

        パラメータ:
        seconds - 新しいクエリー・タイムアウトの制限値の秒数。ゼロは無制限を意味する
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、または条件seconds >= 0が満たされない場合
        関連項目:
        getQueryTimeout()
      • cancel

        void cancel()
             throws SQLException
        DBMSおよびドライバの両方がSQL文の終了をサポートする場合に、このStatementオブジェクトを取り消します。 このメソッドは、1つのスレッドが別のスレッドによって実行中の文を取り消すのに使用できます。
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
      • getWarnings

        SQLWarning getWarnings()
                        throws SQLException
        このStatementオブジェクトに関する呼出しによって報告される最初の警告を取得します。 後続のStatementオブジェクトの警告は、このSQLWarningオブジェクトにチェーンされます。

        警告チェーンは、文が(再)実行されるたびに自動的にクリアされます。 このメソッドはクローズされたStatementオブジェクトの呼出しには使用しません。使用するとSQLExceptionがスローされます。

        注: ResultSetオブジェクトを処理中の場合、ResultSetオブジェクトの読込みに関連する警告はそのオブジェクトを生成したStatementオブジェクトではなくすべてResultSetオブジェクトにチェーンされます。

        戻り値:
        最初のSQLWarningオブジェクト。警告がない場合はnull
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
      • clearWarnings

        void clearWarnings()
                    throws SQLException
        このStatementオブジェクトに関して報告されたすべての警告をクリアします。 このメソッドを呼び出したあと、このStatementオブジェクトに対する新しい警告が通知されるまで、getWarningsメソッドはnullを返します。
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
      • setCursorName

        void setCursorName​(String name)
                    throws SQLException
        後続のStatementオブジェクトのexecuteメソッドによって使用されるSQLカーソル名を指定されたStringに設定します。 この名前は、SQLで位置決めされた更新文または削除文で使用され、この文で生成されたResultSetオブジェクト内の現在の行を識別できます。 データベースが位置決めされた更新または削除をサポートしていない場合、このメソッドは何も実行しません。 更新をサポートする適切な遮断レベルをカーソルが確実に持つためには、カーソルのSELECT文をSELECT FOR UPDATEという形式にしてください。 FOR UPDATEが存在しない場合、位置決めされた更新は失敗します。

        注: 定義により、位置決めされた更新または削除の実行は、位置決めに使用中のResultSetオブジェクトを生成したStatementオブジェクトとは異なるStatementオブジェクトによって実行される必要があります。 さらに、カーソル名は接続内で一意にする必要があります。

        パラメータ:
        name - 新しいカーソル名。接続内で一意にする必要がある
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
      • execute

        boolean execute​(String sql)
                 throws SQLException
        複数の結果を返す可能性のある指定されたSQL文を実行します。 いくつかの(一般的でない)状況では、単一のSQL文が複数の結果セットあるいは更新カウントを返すことがあります。 複数の結果を返すことがあることがわかっているストアド・プロシージャを実行中、または未知のSQL文字列を動的に実行中でないかぎり、通常はこれを無視できます。

        executeメソッドは、SQL文を実行し最初の結果の形式を示します。 次に、getResultSetまたはgetUpdateCountメソッドを使用して結果を取得します。そして、getMoreResultsにより引き続き任意の結果の取得(複数可)に移動します。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - 任意のSQL文
        戻り値:
        最初の結果がResultSetオブジェクトの場合はtrue。更新カウントであるか、または結果がない場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、またはメソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        関連項目:
        getResultSet(), getUpdateCount(), getMoreResults()
      • getResultSet

        ResultSet getResultSet()
                        throws SQLException
        ResultSetオブジェクトとして現在の結果を取得します。 このメソッドは、1つの結果につき1回だけ呼び出す必要があります。
        戻り値:
        ResultSetオブジェクトとしての現在の結果。結果が更新カウントであるか、または結果がない場合はnull
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        関連項目:
        execute(java.lang.String)
      • getUpdateCount

        int getUpdateCount()
                    throws SQLException
        更新カウントとして現在の結果を取得します。結果がResultSetオブジェクトであるか、または結果がない場合は -1を返します。 このメソッドは、1つの結果につき1回だけ呼び出す必要があります。
        戻り値:
        更新カウントしての現在の結果。現在の結果がResultSetオブジェクトであるか、または結果がない場合は -1
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        関連項目:
        execute(java.lang.String)
      • getMoreResults

        boolean getMoreResults()
                        throws SQLException
        Statementオブジェクトの次の結果に移動します。この結果がResultSetオブジェクトの場合はtrueを返し、getResultSetメソッドで得られた現在のResultSetオブジェクトをすべて暗黙にクローズします。

        次に該当する場合、結果はありません。

        
             // stmt is a Statement object
             ((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
         

        戻り値:
        次の結果がResultSetオブジェクトの場合はtrue。更新カウントであるか、または結果がない場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        関連項目:
        execute(java.lang.String)
      • setFetchDirection

        void setFetchDirection​(int direction)
                        throws SQLException
        Statementオブジェクトを使用して作成されたResultSetオブジェクトの行が処理される方向についてのヒントをドライバに提供します。 デフォルト値はResultSet.FETCH_FORWARDです。

        このメソッドは、このStatementオブジェクトによって生成される結果セットのデフォルトのフェッチ方向を設定します。 各結果セットは、それ自身のフェッチ方向を取得および設定するための独自のメソッドを持ちます。

        パラメータ:
        direction - 行を処理する初期方向
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、または指定された方向がResultSet.FETCH_FORWARDResultSet.FETCH_REVERSE、またはResultSet.FETCH_UNKNOWNのどれでもない場合
        導入されたバージョン:
        1.2
        関連項目:
        getFetchDirection()
      • getFetchDirection

        int getFetchDirection()
                       throws SQLException
        このStatementオブジェクトから生成された結果セットのデフォルトである、データベース表から行をフェッチする方向を取得します。 このStatementオブジェクトがsetFetchDirectionメソッドを呼び出してフェッチ方向を設定していない場合、戻り値は実装に依存します。
        戻り値:
        このStatementオブジェクトから生成された結果セットのデフォルトのフェッチ方向
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        導入されたバージョン:
        1.2
        関連項目:
        setFetchDirection(int)
      • setFetchSize

        void setFetchSize​(int rows)
                   throws SQLException
        このStatementで作成されたResultSetオブジェクトでより多くの行が必要なときにデータベースから取り出す必要がある行数についてのヒントをJDBCドライバに提供します。 指定された値が0の場合、ヒントは無視されます。 デフォルト値はゼロです。
        パラメータ:
        rows - フェッチする行数
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、または条件rows>= 0が満たされない場合。
        導入されたバージョン:
        1.2
        関連項目:
        getFetchSize()
      • getFetchSize

        int getFetchSize()
                  throws SQLException
        このStatementオブジェクトから生成されたResultSetオブジェクトのデフォルトのフェッチ・サイズである、結果セットの行数を取得します。 このStatementオブジェクトがsetFetchSizeメソッドを呼び出してフェッチ・サイズを設定していない場合、戻り値は実装に依存します。
        戻り値:
        このStatementオブジェクトから生成された結果セットのデフォルトのフェッチ・サイズ
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        導入されたバージョン:
        1.2
        関連項目:
        setFetchSize(int)
      • getResultSetConcurrency

        int getResultSetConcurrency()
                             throws SQLException
        このStatementオブジェクトから生成されたResultSetオブジェクトの結果セットの並行処理を取得します。
        戻り値:
        ResultSet.CONCUR_READ_ONLYまたはResultSet.CONCUR_UPDATABLE
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        導入されたバージョン:
        1.2
      • getResultSetType

        int getResultSetType()
                      throws SQLException
        このStatementオブジェクトから生成されたResultSetオブジェクトの結果セットのタイプを取得します。
        戻り値:
        ResultSet.TYPE_FORWARD_ONLYResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVEのいずれか
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        導入されたバージョン:
        1.2
      • addBatch

        void addBatch​(String sql)
               throws SQLException
        このStatementオブジェクトの現在のコマンドのリストに、指定されたSQLコマンドを追加します。 このリストのコマンドはexecuteBatchメソッドを呼び出すことにより、バッチとして実行できます。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - 通常はSQL INSERT文またはUPDATE
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、ドライバがバッチ更新をサポートしない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        導入されたバージョン:
        1.2
        関連項目:
        executeBatch(), DatabaseMetaData.supportsBatchUpdates()
      • clearBatch

        void clearBatch()
                 throws SQLException
        このStatementオブジェクトの現在のSQLコマンド・リストを空にします。
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、またはドライバがバッチ更新をサポートしない場合
        導入されたバージョン:
        1.2
        関連項目:
        addBatch(java.lang.String), DatabaseMetaData.supportsBatchUpdates()
      • executeBatch

        int[] executeBatch()
                    throws SQLException
        コマンドのバッチをデータベースに送信して実行し、すべてのコマンドが正常に実行されると、更新カウントの配列を返します。 返される配列のint要素は、バッチ内のコマンドに対応して順序付けられます。つまり、バッチに追加された順序に従って順序付けられます。 executeBatchメソッドによって返される配列内の要素は、次のいずれか1つに該当します。
        1. ゼロ以上の数値 -- コマンドが正常に処理されたことを示し、コマンドの実行によって影響を受けたデータベース内の行数を指定する更新カウントです。
        2. SUCCESS_NO_INFOの値 -- コマンドが正常に処理されたが、影響を受けた行数が不明なことを示します

          バッチ更新内のコマンドの1つが正常に実行できなかった場合、このメソッドはBatchUpdateExceptionをスローし、JDBCドライバはバッチ内の残りのコマンドの処理を継続することも、中止することもできます。 ただし、ドライバの動作は特定のDBMSと一貫性を保つ必要があり、常にコマンドの処理を継続するか、あるいは継続しないかのどちらかになります。 失敗後、ドライバが処理を継続する場合は、BatchUpdateException.getUpdateCountsメソッドで返される配列には、バッチ内のコマンドと同じ数の要素が格納され、それらの要素の1つ以上が次に該当します。

        3. EXECUTE_FAILEDの値 -- 失敗したコマンドが正常に実行されたことを示し、コマンドが失敗したあとに、ドライバがコマンドの処理を継続した場合に限り発生します。

        Java 2 SDK, Standard Edition, Version 1.3では、使用できる実装および戻り値が修正されて、BatchUpdateExceptionオブジェクトがスローされた後にバッチ更新内のコマンドの処理を継続できるオプションが用意されています。

        戻り値:
        バッチ内のコマンドごとに1つの要素が格納されている更新カウントの配列。 配列の要素はコマンドがバッチに追加された順序で並べられる。
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、またはドライバがバッチ文をサポートしない場合。 データベースに送信されたコマンドの1つが正常に実行されなかった場合や、結果セットを返そうとした場合は、BatchUpdateException (SQLExceptionのサブクラス)がスローされる。
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.2
        関連項目:
        addBatch(java.lang.String), DatabaseMetaData.supportsBatchUpdates()
      • getConnection

        Connection getConnection()
                          throws SQLException
        このStatementオブジェクトを生成したConnectionオブジェクトを取得します。
        戻り値:
        この文を生成した接続
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        導入されたバージョン:
        1.2
      • getMoreResults

        boolean getMoreResults​(int current)
                        throws SQLException
        Statementオブジェクトの次の結果に移動します。指定されたフラグによって指定された命令に従ってすべての現在のResultSetオブジェクトを処理し、次の結果がResultSetオブジェクトの場合はtrueを返します。

        次に該当する場合、結果はありません。

        
             // stmt is a Statement object
             ((stmt.getMoreResults(current) == false) && (stmt.getUpdateCount() == -1))
         

        パラメータ:
        current - getResultSetメソッドを使用して取得した現在のResultSetオブジェクトに対する処理を示す次のいずれかのStatement定数。Statement.CLOSE_CURRENT_RESULTStatement.KEEP_CURRENT_RESULT、またはStatement.CLOSE_ALL_RESULTS
        戻り値:
        次の結果がResultSetオブジェクトの場合はtrue。更新カウントであるか、または結果がない場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、または指定された引数がStatement.CLOSE_CURRENT_RESULTStatement.CLOSE_ALL_RESULTS、またはStatement.KEEP_CURRENT_RESULTのどれでもない場合
        SQLFeatureNotSupportedException - DatabaseMetaData.supportsMultipleOpenResultsfalseを返し、引数としてStatement.KEEP_CURRENT_RESULTまたはStatement.CLOSE_ALL_RESULTSが指定されている場合。
        導入されたバージョン:
        1.4
        関連項目:
        execute(java.lang.String)
      • getGeneratedKeys

        ResultSet getGeneratedKeys()
                            throws SQLException
        このStatementオブジェクトを実行した結果として作成された自動生成キーを取得します。 このStatementオブジェクトがキーを生成しなかった場合は、空のResultSetオブジェクトが返されます。

        : 自動生成キーを表す列が指定されなかった場合、JDBCドライバ実装では、自動生成キーを表すのに最適な列を判断します。

        戻り値:
        このStatementオブジェクトの実行で生成された自動生成キーを含むResultSetオブジェクト
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        導入されたバージョン:
        1.4
      • executeUpdate

        int executeUpdate​(String sql,
                          int autoGeneratedKeys)
                   throws SQLException
        指定されたSQL文を実行し、このStatementオブジェクトによって生成された自動生成キーを検索可能にするかどうかについて指定されたフラグでドライバに通知します。 SQL文がINSERT文でない場合、または自動生成キーを返すことができるSQL文でない場合(そのような文のリストはベンダー固有)、ドライバはフラグを無視します。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - SQL INSERT文、UPDATE文、またはDELETE文のようなSQLデータ操作言語(DML)文、あるいはDDL文のような何も返さないSQL文
        autoGeneratedKeys - 自動生成キーを検索可能にするかどうかを示すフラグ。定数Statement.RETURN_GENERATED_KEYSまたはStatement.NO_GENERATED_KEYS
        戻り値:
        (1) SQLデータ操作言語(DML)文の場合は行数、(2)何も返さないSQL文の場合は0
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、指定されたSQL文がResultSetオブジェクトを返す場合、指定された定数が許可されているものでない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバが定数Statement.RETURN_GENERATED_KEYSを指定したこのメソッドをサポートしない場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.4
      • executeUpdate

        int executeUpdate​(String sql,
                          int[] columnIndexes)
                   throws SQLException
        指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。 この配列は検索可能にする自動生成キーを含むターゲット表の列のインデックスを含みます。 SQL文がINSERT文でない場合、または自動生成キーを返すことができるSQL文でない場合(そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - SQL INSERT文、UPDATE文、またはDELETE文のようなSQLデータ操作言語(DML)文、あるいはDDL文のような何も返さないSQL文
        columnIndexes - 挿入された行から返される列を示す列インデックスの配列
        戻り値:
        (1) SQLデータ操作言語(DML)文の場合は行数、(2)何も返さないSQL文の場合は0
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、SQL文がResultSetオブジェクトを返す場合、このメソッドに指定された2番目の引数が、有効な列インデックスを要素とするint配列ではない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.4
      • executeUpdate

        int executeUpdate​(String sql,
                          String[] columnNames)
                   throws SQLException
        指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。 この配列は検索可能にする自動生成キーを含むターゲット表の列の名前を含みます。 SQL文がINSERT文でない場合、または自動生成キーを返すことができるSQL文でない場合(そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - SQL INSERT文、UPDATE文、またはDELETE文のようなSQLデータ操作言語(DML)文、あるいはDDL文のような何も返さないSQL文
        columnNames - 挿入された行から返される列の名前の配列
        戻り値:
        INSERT文、UPDATE文、DELETE文の場合は行数。何も返さないSQL文の場合は0
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、SQL文がResultSetオブジェクトを返す場合、このメソッドに指定された2番目の引数が、有効な列名を要素とするString配列ではない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.4
      • execute

        boolean execute​(String sql,
                        int autoGeneratedKeys)
                 throws SQLException
        複数の結果を返す可能性のある指定されたSQL文を実行し、すべての自動生成キーを検索可能にするかどうかについてドライバに通知します。 SQL文がINSERT文でない場合、または自動生成キーを返すことができるSQL文でない場合(そのような文のリストはベンダー固有)、ドライバはこの信号を無視します。

        いくつかの(一般的でない)状況では、単一のSQL文が複数の結果セットあるいは更新カウントを返すことがあります。 複数の結果を返すことがあることがわかっているストアド・プロシージャを実行中、または未知のSQL文字列を動的に実行中でないかぎり、通常はこれを無視できます。

        executeメソッドは、SQL文を実行し最初の結果の形式を示します。 次に、getResultSetまたはgetUpdateCountメソッドを使用して結果を取得します。そして、getMoreResultsにより引き続き任意の結果の取得(複数可)に移動します。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - 任意のSQL文
        autoGeneratedKeys - getGeneratedKeysメソッドを使用して、自動生成キーを検索可能にするかどうかを示す定数。Statement.RETURN_GENERATED_KEYSまたはStatement.NO_GENERATED_KEYS
        戻り値:
        最初の結果がResultSetオブジェクトの場合はtrue。更新カウントであるか、または結果がない場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、このメソッドに指定された2番目のパラメータがStatement.RETURN_GENERATED_KEYSまたはStatement.NO_GENERATED_KEYSでない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバが定数Statement.RETURN_GENERATED_KEYSを指定したこのメソッドをサポートしない場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.4
        関連項目:
        getResultSet(), getUpdateCount(), getMoreResults(), getGeneratedKeys()
      • execute

        boolean execute​(String sql,
                        int[] columnIndexes)
                 throws SQLException
        複数の結果を返す可能性のある指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。 この配列は検索可能にする自動生成キーを含むターゲット表の列のインデックスを含みます。 SQL文がINSERT文でない場合、または自動生成キーを返すことができるSQL文でない場合(そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。

        いくつかの(一般的でない)状況では、単一のSQL文が複数の結果セットあるいは更新カウントを返すことがあります。 複数の結果を返すことがあることがわかっているストアド・プロシージャを実行中、または未知のSQL文字列を動的に実行中でないかぎり、通常はこれを無視できます。

        executeメソッドは、SQL文を実行し最初の結果の形式を示します。 次に、getResultSetまたはgetUpdateCountメソッドを使用して結果を取得します。そして、getMoreResultsにより引き続き任意の結果の取得(複数可)に移動します。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - 任意のSQL文
        columnIndexes - getGeneratedKeysメソッドの呼出しによって検索可能にする挿入行の列インデックスの配列
        戻り値:
        最初の結果がResultSetオブジェクトの場合はtrue。更新カウントであるか、または結果がない場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、このメソッドに渡されたint配列の要素が有効な列インデックスでない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.4
        関連項目:
        getResultSet(), getUpdateCount(), getMoreResults()
      • execute

        boolean execute​(String sql,
                        String[] columnNames)
                 throws SQLException
        複数の結果を返す可能性のある指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。 この配列は検索可能にする自動生成キーを含むターゲット表の列の名前を含みます。 SQL文がINSERT文でない場合、または自動生成キーを返すことができるSQL文でない場合(そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。

        いくつかの(一般的でない)状況では、単一のSQL文が複数の結果セットあるいは更新カウントを返すことがあります。 複数の結果を返すことがあることがわかっているストアド・プロシージャを実行中、または未知のSQL文字列を動的に実行中でないかぎり、通常はこれを無視できます。

        executeメソッドは、SQL文を実行し最初の結果の形式を示します。 次に、getResultSetまたはgetUpdateCountメソッドを使用して結果を取得します。そして、getMoreResultsにより引き続き任意の結果の取得(複数可)に移動します。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        パラメータ:
        sql - 任意のSQL文
        columnNames - getGeneratedKeysメソッドの呼出しによって検索可能にする挿入行の列名の配列
        戻り値:
        次の結果がResultSetオブジェクトの場合はtrue。更新カウントであるか、または結果がない場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、このメソッドに渡されたString配列の要素が有効な列名でない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.4
        関連項目:
        getResultSet(), getUpdateCount(), getMoreResults(), getGeneratedKeys()
      • getResultSetHoldability

        int getResultSetHoldability()
                             throws SQLException
        このStatementオブジェクトから生成されたResultSetオブジェクトの結果セットの保持機能を取得します。
        戻り値:
        ResultSet.HOLD_CURSORS_OVER_COMMITまたはResultSet.CLOSE_CURSORS_AT_COMMIT
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        導入されたバージョン:
        1.4
      • isClosed

        boolean isClosed()
                  throws SQLException
        このStatementオブジェクトがクローズされているかどうかを取得します。 Statementでcloseメソッドが呼び出されるか、または自動的にクローズされる場合、このオブジェクトはクローズされます。
        戻り値:
        このStatementオブジェクトがクローズされている場合はtrue、まだオープンの状態の場合はfalse
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合
        導入されたバージョン:
        1.6
      • setPoolable

        void setPoolable​(boolean poolable)
                  throws SQLException
        Statementをプールすること、またはプールしないことを要求します。 指定された値は、文のプール実装のヒントで、アプリケーションで文がプールされる必要があるかどうかを示します。 ヒントが使用されるかどうかは、文のプール管理プログラムによって異なります。

        文のプール可能な値は、ドライバによって実装される内部文キャッシュと、アプリケーション・サーバーやその他のアプリケーションによって実装される外部文キャッシュの両方に適用されます。

        デフォルトで、Statementは作成時にプール可能ではありませんが、PreparedStatementおよびCallableStatementは作成時にプール可能です。

        パラメータ:
        poolable - trueの場合は文をプールすること、falseの場合は文をプールしないことを要求する
        例外:
        SQLException - このメソッドがクローズされたStatementで呼び出された場合
        導入されたバージョン:
        1.6
      • isPoolable

        boolean isPoolable()
                    throws SQLException
        Statementがプール可能かどうかを示す値を返します。
        戻り値:
        Statementがプール可能である場合はtrue、そうでない場合はfalse
        例外:
        SQLException - このメソッドがクローズされたStatementで呼び出された場合
        導入されたバージョン:
        1.6
        関連項目:
        setPoolable(boolean)
      • closeOnCompletion

        void closeOnCompletion()
                        throws SQLException
        このStatementに依存するすべての結果セットがクローズされたときにこのStatementがクローズされることを示します。 Statementの実行によって結果セットが生成されない場合、このメソッドは無効です。

        注: closeOnCompletionを複数回呼び出してもこのStatementへの効果は切り替わりません。 ただし、closeOnCompletionの呼出しは、文のその後の実行と、現在開いていて依存されている結果セットがある文の両方に影響します。

        例外:
        SQLException - このメソッドがクローズされたStatementで呼び出された場合
        導入されたバージョン:
        1.7
      • isCloseOnCompletion

        boolean isCloseOnCompletion()
                             throws SQLException
        このStatementに依存するすべての結果セットがクローズされたときにこのStatementがクローズされるかどうかを示す値を取得します。
        戻り値:
        このStatementが、依存するすべての結果セットがクローズされたときにクローズされる場合はtrue、そうでない場合はfalse
        例外:
        SQLException - このメソッドがクローズされたStatementで呼び出された場合
        導入されたバージョン:
        1.7
      • getLargeUpdateCount

        default long getLargeUpdateCount()
                                  throws SQLException
        更新カウントとして現在の結果を取得します。結果がResultSetオブジェクトであるか、または結果がない場合は -1を返します。 このメソッドは、1つの結果につき1回だけ呼び出す必要があります。

        返される行数がInteger.MAX_VALUEを超える可能性がある場合は、このメソッドを使用するようにしてください。

        デフォルト実装はUnsupportedOperationExceptionをスローします

        戻り値:
        更新カウントしての現在の結果。現在の結果がResultSetオブジェクトであるか、または結果がない場合は -1
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        導入されたバージョン:
        1.8
        関連項目:
        execute(java.lang.String)
      • setLargeMaxRows

        default void setLargeMaxRows​(long max)
                              throws SQLException
        このStatementオブジェクトで作成された任意のResultSetオブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。 制限値を超えた行は通知なしに除外されます。

        行制限がInteger.MAX_VALUEを超える可能性がある場合は、このメソッドを使用するようにしてください。

        デフォルト実装はUnsupportedOperationExceptionをスローします

        パラメータ:
        max - 新しい最大行数の制限値。ゼロは無制限を意味する
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、または条件max >= 0が満たされない場合
        導入されたバージョン:
        1.8
        関連項目:
        getMaxRows()
      • getLargeMaxRows

        default long getLargeMaxRows()
                              throws SQLException
        このStatementオブジェクトによって生成されるResultSetオブジェクトに含めることのできる最大行数を取得します。 制限値を超えた行は通知なしに除外されます。

        返される行制限がInteger.MAX_VALUEを超える可能性がある場合は、このメソッドを使用するようにしてください。

        デフォルト実装は0を返します

        戻り値:
        このStatementオブジェクトによって生成されるResultSetオブジェクトの現在の最大行数。ゼロは無制限を意味する
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatementについて呼び出された場合
        導入されたバージョン:
        1.8
        関連項目:
        setMaxRows(int)
      • executeLargeBatch

        default long[] executeLargeBatch()
                                  throws SQLException
        コマンドのバッチをデータベースに送信して実行し、すべてのコマンドが正常に実行されると、更新カウントの配列を返します。 返される配列のlong要素は、バッチ内のコマンドに対応して順序付けられます。つまり、コマンドがバッチに追加された順序に従って順序付けられます。 executeLargeBatchメソッドによって返される配列内の要素は、次のいずれかである可能性があります。
        1. ゼロ以上の数値 -- コマンドが正常に処理されたことを示し、コマンドの実行によって影響を受けたデータベース内の行数を指定する更新カウントです。
        2. SUCCESS_NO_INFOの値 -- コマンドが正常に処理されたが、影響を受けた行数が不明なことを示します

          バッチ更新内のコマンドの1つが正常に実行できなかった場合、このメソッドはBatchUpdateExceptionをスローし、JDBCドライバはバッチ内の残りのコマンドの処理を継続することも、中止することもできます。 ただし、ドライバの動作は特定のDBMSと一貫性を保つ必要があり、常にコマンドの処理を継続するか、あるいは継続しないかのどちらかになります。 失敗後、ドライバが処理を継続する場合は、BatchUpdateException.getLargeUpdateCountsメソッドで返される配列にバッチ内のコマンドと同じ数の要素が格納され、それらの要素の1つ以上が次に該当します。

        3. EXECUTE_FAILEDの値 -- 失敗したコマンドが正常に実行されたことを示し、コマンドが失敗したあとに、ドライバがコマンドの処理を継続した場合に限り発生します。

        返される行数がInteger.MAX_VALUEを超える可能性がある場合は、このメソッドを使用するようにしてください。

        デフォルト実装はUnsupportedOperationExceptionをスローします

        戻り値:
        バッチ内のコマンドごとに1つの要素が格納されている更新カウントの配列。 配列の要素はコマンドがバッチに追加された順序で並べられる。
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、またはドライバがバッチ文をサポートしない場合。 データベースに送信されたコマンドの1つが正常に実行されなかった場合や、結果セットを返そうとした場合は、BatchUpdateException (SQLExceptionのサブクラス)がスローされる。
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.8
        関連項目:
        addBatch(java.lang.String), DatabaseMetaData.supportsBatchUpdates()
      • executeLargeUpdate

        default long executeLargeUpdate​(String sql)
                                 throws SQLException
        指定されたSQL文を実行します。SQL文は、INSERT文、UPDATE文、DELETE文、またはSQL DDL文のような何も返さないSQL文の場合があります。

        返される行数がInteger.MAX_VALUEを超える可能性がある場合は、このメソッドを使用するようにしてください。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        デフォルト実装はUnsupportedOperationExceptionをスローします

        パラメータ:
        sql - SQL INSERT文、UPDATE文、またはDELETE文のようなSQLデータ操作言語(DML)文、あるいはDDL文のような何も返さないSQL文
        戻り値:
        (1) SQLデータ操作言語(DML)文の場合は行数、(2)何も返さないSQL文の場合は0
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、または指定されたSQL文がResultSetオブジェクトを生成した場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.8
      • executeLargeUpdate

        default long executeLargeUpdate​(String sql,
                                        int autoGeneratedKeys)
                                 throws SQLException
        指定されたSQL文を実行し、このStatementオブジェクトによって生成された自動生成キーを検索可能にするかどうかについて指定されたフラグでドライバに通知します。 SQL文がINSERT文でない場合、または自動生成キーを返すことができるSQL文でない場合(そのような文のリストはベンダー固有)、ドライバはフラグを無視します。

        返される行数がInteger.MAX_VALUEを超える可能性がある場合は、このメソッドを使用するようにしてください。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        デフォルト実装はSQLFeatureNotSupportedExceptionをスローします

        パラメータ:
        sql - SQL INSERT文、UPDATE文、またはDELETE文のようなSQLデータ操作言語(DML)文、あるいはDDL文のような何も返さないSQL文
        autoGeneratedKeys - 自動生成キーを検索可能にするかどうかを示すフラグ。定数Statement.RETURN_GENERATED_KEYSまたはStatement.NO_GENERATED_KEYS
        戻り値:
        (1) SQLデータ操作言語(DML)文の場合は行数、(2)何も返さないSQL文の場合は0
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、指定されたSQL文がResultSetオブジェクトを返す場合、指定された定数が許可されているものでない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバが定数Statement.RETURN_GENERATED_KEYSを指定したこのメソッドをサポートしない場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.8
      • executeLargeUpdate

        default long executeLargeUpdate​(String sql,
                                        int[] columnIndexes)
                                 throws SQLException
        指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。 この配列は検索可能にする自動生成キーを含むターゲット表の列のインデックスを含みます。 SQL文がINSERT文でない場合、または自動生成キーを返すことができるSQL文でない場合(そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。

        返される行数がInteger.MAX_VALUEを超える可能性がある場合は、このメソッドを使用するようにしてください。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        デフォルト実装はSQLFeatureNotSupportedExceptionをスローします

        パラメータ:
        sql - SQL INSERT文、UPDATE文、またはDELETE文のようなSQLデータ操作言語(DML)文、あるいはDDL文のような何も返さないSQL文
        columnIndexes - 挿入された行から返される列を示す列インデックスの配列
        戻り値:
        (1) SQLデータ操作言語(DML)文の場合は行数、(2)何も返さないSQL文の場合は0
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、SQL文がResultSetオブジェクトを返す場合、このメソッドに指定された2番目の引数が、有効な列インデックスを要素とするint配列ではない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.8
      • executeLargeUpdate

        default long executeLargeUpdate​(String sql,
                                        String[] columnNames)
                                 throws SQLException
        指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。 この配列は検索可能にする自動生成キーを含むターゲット表の列の名前を含みます。 SQL文がINSERT文でない場合、または自動生成キーを返すことができるSQL文でない場合(そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。

        返される行数がInteger.MAX_VALUEを超える可能性がある場合は、このメソッドを使用するようにしてください。

        注: このメソッドをPreparedStatementまたはCallableStatementに対して呼び出すことはできません。

        デフォルト実装はSQLFeatureNotSupportedExceptionをスローします

        パラメータ:
        sql - SQL INSERT文、UPDATE文、またはDELETE文のようなSQLデータ操作言語(DML)文、あるいはDDL文のような何も返さないSQL文
        columnNames - 挿入された行から返される列の名前の配列
        戻り値:
        INSERT文、UPDATE文、DELETE文の場合は行数。何も返さないSQL文の場合は0
        例外:
        SQLException - データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatementで呼び出された場合、SQL文がResultSetオブジェクトを返す場合、このメソッドに指定された2番目の引数が、有効な列名を要素とするString配列ではない場合、メソッドがPreparedStatementまたはCallableStatementで呼び出された場合
        SQLFeatureNotSupportedException - JDBCドライバがこのメソッドをサポートしない場合
        SQLTimeoutException - ドライバが、setQueryTimeoutメソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatementの取消しを試みたとき
        導入されたバージョン:
        1.8
      • enquoteLiteral

        default String enquoteLiteral​(String val)
                               throws SQLException
        単一引用符で囲まれたStringを返します。 文字列内の一重引用符は、二重引用符で置き換えられます。
        変換の例:
        Result
        Hello 'Hello'
        G'Day 'G' 'Day'
        'G' 'Day' '''G''' 'Day' ''
        I'''M 'I' '''' 'M'
        実装上の注意:
        JDBCドライバ実装は、基礎となるデータソースの要件を満たすために、このメソッドの独自の実装を提供する必要があります。
        パラメータ:
        val - 文字列
        戻り値:
        一重引用符で囲まれた文字列。二重引用符に変換されます。
        例外:
        NullPointerException - valがnullの場合
        SQLException - データベース・アクセス・エラーが発生した場合
        導入されたバージョン:
        9
      • enquoteIdentifier

        default String enquoteIdentifier​(String identifier,
                                         boolean alwaysQuote)
                                  throws SQLException
        SQL識別子を返します。 identifierが単純なSQL識別子である場合:
        • alwaysQuotefalseの場合は元の値を返します。
        • alwaysQuotetrueの場合、区切り識別子を返します。
        identifierが単純なSQL識別子でない場合、identifierは、まだ存在しない場合は二重引用符で囲まれます。 データソースが区切られた識別子の二重引用符をサポートしていない場合、識別子はDatabaseMetaData.getIdentifierQuoteString()から返された文字列で囲む必要があります。 データソースが区切られた識別子をサポートしていない場合は、SQLFeatureNotSupportedExceptionをスローする必要があります。

        identifierに、区切られた識別子に無効な文字が含まれているか、識別子の長さがデータソースに対して無効な場合、SQLExceptionがスローされます。

        実装要件:
        デフォルトの実装では、次の条件を使用して有効な単純なSQL識別子を判別します:
        • 文字列は二重引用符で囲まれていません
        • 最初の文字は、a〜zまたはA〜Zのアルファベット文字です
        • 名前には、英数字または文字"_"のみが含まれています
        デフォルトの実装では、次の場合にSQLExceptionがスローされます:
        • identifierにはnull文字または二重引用符が含まれており、単純なSQL識別子ではありません。
        • identifierの長さが1未満または128文字を超える
        変換の例:
        identifier alwaysQuote Result
        Hello false Hello
        Hello true "Hello"
        G'Day false "G'Day"
        "Bruce Wayne" false "Bruce Wayne"
        "Bruce Wayne" true "Bruce Wayne"
        GoodDay$ false "GoodDay$"
        Hello"World false SQLException
        "Hello" World" false SQLException
        実装上の注意:
        JDBCドライバ実装は、基礎となるデータソースの要件を満たすために、このメソッドの独自の実装を提供する必要があります。
        パラメータ:
        identifier - SQL識別子
        alwaysQuote - 単純なSQL識別子を引用された識別子として返すべきかどうかを示します
        戻り値:
        単純なSQL識別子または区切られた識別子
        例外:
        SQLException - identifierが有効な識別子でない場合
        SQLFeatureNotSupportedException - データソースが区切られた識別子をサポートしていない場合
        NullPointerException - 識別子がnullの場合
        導入されたバージョン:
        9
      • isSimpleIdentifier

        default boolean isSimpleIdentifier​(String identifier)
                                    throws SQLException
        identifierが単純なSQL識別子かどうかを取得します。
        実装要件:
        デフォルトの実装では、次の条件を使用して有効な単純なSQL識別子を判別します:
        • 文字列は二重引用符で囲まれていません
        • 最初の文字は、a〜zまたはA〜Zのアルファベット文字です
        • 文字列には、英数字または文字"_"のみが含まれます。
        • 文字列の長さは1〜128文字です
        変換の例:
        identifier 単純な識別子
        Hello true
        G'Day false
        "Bruce Wayne" false
        GoodDay$ false
        Hello"World false
        "Hello" World" false
        実装上の注意:
        JDBCドライバ実装は、基礎となるデータソースの要件を満たすために、このメソッドの独自の実装を提供する必要があります。
        パラメータ:
        identifier - SQL識別子
        戻り値:
        単純なSQL識別子の場合はtrue、そうでない場合はfalse
        例外:
        NullPointerException - 識別子がnullの場合
        SQLException - データベース・アクセス・エラーが発生した場合
        導入されたバージョン:
        9
      • enquoteNCharLiteral

        default String enquoteNCharLiteral​(String val)
                                    throws SQLException
        一重引用符で囲まれ、大文字のNで始まる国別文字セット・リテラルを表すStringを返します。 文字列内の一重引用符は、二重引用符で置き換えられます。
        変換の例:
        Result
        Hello N 'Hello'
        G'Day N 'G' '日'
        'G' 'Day' N '''G''' '日' ''
        I'''M N 'I' '' '' 'M'
        N 'Hello' N 'N' 'Hello' ''
        実装上の注意:
        JDBCドライバ実装は、基礎となるデータソースの要件を満たすために、このメソッドの独自の実装を提供する必要があります。 enquoteNCharLiteralの実装は、enquoteLiteralの同じドライバ実装で受け入れられるものとは異なる文字セットを受け入れるかもしれません。
        パラメータ:
        val - 文字列
        戻り値:
        引数のすべての一重引用符文字を2つの一重引用符文字で置き換えた結果。この結果全体に'N'というプレフィクスが付きます。
        例外:
        NullPointerException - valがnullの場合
        SQLException - データベース・アクセス・エラーが発生した場合
        導入されたバージョン:
        9