public interface Statement extends Wrapper, AutoCloseable
静的 SQL 文を実行し、作成された結果を返すために使用されるオブジェクトです。
デフォルトでは、Statement オブジェクトごとに、同時に開くことができる ResultSet オブジェクトは 1 つだけです。したがって、1 つの ResultSet オブジェクトの読み込みが、別の読み込みにより割り込まれると、各々は異なった Statement オブジェクトによって生成されたことになります。Statement インタフェースのすべての実行メソッドは、文の現在の ResultSet オブジェクトでオープンされているものが存在すれば、それを暗黙にクローズします。
| 修飾子と型 | フィールドと説明 | 
|---|---|
| static int | CLOSE_ALL_RESULTSgetMoreResultsが呼び出されたときに、直前までオープンされていたすべてのResultSetオブジェクトがクローズされることを示す定数です。 | 
| static int | CLOSE_CURRENT_RESULTgetMoreResultsが呼び出されたときに、現在のResultSetオブジェクトがクローズされることを示す定数です。 | 
| static int | EXECUTE_FAILEDバッチ文の実行中にエラーが発生したことを示す定数です。 | 
| static int | KEEP_CURRENT_RESULTgetMoreResultsが呼び出されたときに、現在の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がクローズされることを示します。 | 
| 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()コマンドのバッチをデータベースに送信して実行し、すべてのコマンドが正常に実行されると、更新カウントの配列を返します。 | 
| 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オブジェクトを実行した結果として作成された自動生成キーを取得します。 | 
| 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がプール可能かどうかを示す値を返します。 | 
| 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 ドライバに提供します。 | 
| void | setMaxFieldSize(int max)この  Statementオブジェクトによって生成されるResultSetオブジェクトの文字およびバイナリの各列値に対し返される最大バイト数の制限を設定します。 | 
| void | setMaxRows(int max)この  Statementオブジェクトで作成された任意のResultSetオブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。 | 
| void | setPoolable(boolean poolable)Statementをプールすること、またはプールしないことを要求します。 | 
| void | setQueryTimeout(int seconds)ドライバが  Statementオブジェクトの実行を待つ秒数を、指定された秒数に設定します。 | 
isWrapperFor, unwrapstatic final int CLOSE_CURRENT_RESULT
getMoreResults が呼び出されたときに、現在の ResultSet オブジェクトがクローズされることを示す定数です。static final int KEEP_CURRENT_RESULT
getMoreResults が呼び出されたときに、現在の ResultSet オブジェクトがクローズされないことを示す定数です。static final int CLOSE_ALL_RESULTS
getMoreResults が呼び出されたときに、直前までオープンされていたすべての ResultSet オブジェクトがクローズされることを示す定数です。static final int SUCCESS_NO_INFO
static final int EXECUTE_FAILED
static final int RETURN_GENERATED_KEYS
static final int NO_GENERATED_KEYS
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 の取り消しを試みたときint executeUpdate(String sql) throws SQLException
INSERT 文、UPDATE 文、DELETE 文、または SQL DDL 文のような何も返さない SQL 文の場合があります。
注: このメソッドを PreparedStatement または CallableStatement に対して呼び出すことはできません。
sql - SQL INSERT 文、UPDATE 文、または DELETE 文のような SQL データ操作言語 (DML) 文、あるいは DDL 文のような何も返さない SQL 文SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または指定された SQL 文が ResultSet オブジェクトを生成した場合、メソッドが PreparedStatement または CallableStatement で呼び出された場合SQLTimeoutException - ドライバが、setQueryTimeout メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement の取り消しを試みたときvoid close()
           throws SQLException
Statement オブジェクトのデータベースと JDBC リソースが解放されるのを待つのではなく、ただちにそれらを解放します。データベースのリソースを占有するのを避けるために、通常は、作業が終了したらすぐにリソースを解放するようにしてください。
 
すでにクローズされた Statement オブジェクトで close メソッドを呼び出すと、操作は行われません。
 
注: Statement オブジェクトがクローズされるとき、その現在の ResultSet オブジェクトが存在すれば、それもクローズされます。
close、インタフェース: AutoCloseableSQLException - データベースアクセスエラーが発生した場合int getMaxFieldSize()
                    throws SQLException
Statement オブジェクトによって生成される ResultSet オブジェクトの文字およびバイナリの各列値に対し返される最大バイト数を取得します。この制限値は、BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR、NCHAR、NVARCHAR、LONGNVARCHAR、および LONGVARCHAR の各列だけに適用されます。制限値を超えたデータは通知なしに破棄されます。SQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合setMaxFieldSize(int)void setMaxFieldSize(int max)
                     throws SQLException
Statement オブジェクトによって生成される ResultSet オブジェクトの文字およびバイナリの各列値に対し返される最大バイト数の制限を設定します。
この制限値は、BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR、NCHAR、NVARCHAR、LONGNVARCHAR、および LONGVARCHAR の各フィールドだけに適用されます。制限値を超えたデータは通知なしに破棄されます。移植性を最大限にするには、256 より大きい値を使用します。max - バイト単位の新しい列サイズの制限値。ゼロは無制限を意味するSQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または条件 max >= 0 が満たされない場合getMaxFieldSize()int getMaxRows()
               throws SQLException
Statement オブジェクトによって生成される ResultSet オブジェクトが含むことのできる最大の行数を取得します。制限値を超えた行は通知なしに除外されます。Statement オブジェクトによって生成される ResultSet オブジェクトの現在の最大行数。ゼロは無制限を意味するSQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合setMaxRows(int)void setMaxRows(int max)
                throws SQLException
Statement オブジェクトで作成された任意の ResultSet オブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。制限値を超えた行は通知なしに除外されます。max - 新しい最大行数の制限値。ゼロは無制限を意味するSQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または条件 max >= 0 が満たされない場合getMaxRows()void setEscapeProcessing(boolean enable)
                         throws SQLException
PreparedStatements オブジェクトに対するエスケープ処理を無効にしても効果はありません。enable - エスケープ処理を有効にする場合は true、無効にする場合は falseSQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合int getQueryTimeout()
                    throws SQLException
Statement オブジェクトの実行を待つ秒数を取得します。この制限を超えると、SQLException がスローされます。SQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合setQueryTimeout(int)void setQueryTimeout(int seconds)
                     throws SQLException
Statement オブジェクトの実行を待つ秒数を、指定された秒数に設定します。デフォルトでは、実行中の文が完了するまでに許可されている時間に制限はありません。この制限時間を経過すると、SQLTimeoutException がスローされます。JDBC ドライバは、この制限を execute、executeQuery、executeUpdate の各メソッドに適用する必要があります。
 
注: JDBC ドライバ実装は、この制限を ResultSet メソッドに適用することもあります (詳細は、ドライバベンダーのマニュアルを参照してください)。
 
注: Statement バッチ処理の場合、これは、タイムアウトが addBatch メソッドによって追加された個々の SQL コマンドに適用されるか、executeBatch メソッドによって呼び出された SQL コマンドのバッチ全体に適用されるかに関して定義される実装です (詳細については、ドライバベンダーのドキュメントを参照してください)。
seconds - 新しいクエリータイムアウトの制限値の秒数。ゼロは無制限を意味するSQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または条件 seconds >= 0 が満たされない場合getQueryTimeout()void cancel()
            throws SQLException
Statement オブジェクトを取り消します。このメソッドは、1 つのスレッドが別のスレッドによって実行中の文を取り消すのに使用できます。SQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合SQLWarning getWarnings() throws SQLException
Statement オブジェクトに関する呼び出しによって報告される最初の警告を取得します。後続の Statement オブジェクトの警告は、この SQLWarning オブジェクトにチェーンされます。
警告チェーンは、文が (再) 実行されるたびに自動的にクリアされます。このメソッドはクローズされた Statement オブジェクトの呼び出しには使用しません。使用すると SQLException がスローされます。
注: ResultSet オブジェクトを処理中の場合、ResultSet オブジェクトの読み込みに関連する警告はそのオブジェクトを生成した Statement オブジェクトではなくすべて ResultSet オブジェクトにチェーンされます。
SQLWarning オブジェクト。警告がない場合は nullSQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合void clearWarnings()
                   throws SQLException
Statement オブジェクトに関して報告されたすべての警告をクリアします。このメソッドを呼び出したあと、この Statement オブジェクトに対する新しい警告が通知されるまで、getWarnings メソッドは null を返します。SQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合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 ドライバがこのメソッドをサポートしない場合boolean execute(String sql) throws SQLException
execute メソッドは、SQL 文を実行し最初の結果の形式を示します。次に、getResultSet または getUpdateCount メソッドを使用して結果を取得します。そして、getMoreResults により引き続き任意の結果の取得 (複数可) に移動します。
 
注: このメソッドを PreparedStatement または CallableStatement に対して呼び出すことはできません。
sql - 任意の SQL 文ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は falseSQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、またはメソッドが PreparedStatement または CallableStatement で呼び出された場合SQLTimeoutException - ドライバが、setQueryTimeout メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement の取り消しを試みたときgetResultSet(), getUpdateCount(), getMoreResults()ResultSet getResultSet() throws SQLException
ResultSet オブジェクトとして現在の結果を取得します。このメソッドは、1 つの結果につき 1 回だけ呼び出す必要があります。ResultSet オブジェクトとしての現在の結果。結果が更新カウントであるか、または結果がない場合は nullSQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合execute(java.lang.String)int getUpdateCount()
                   throws SQLException
ResultSet オブジェクトであるか、または結果がない場合は -1 を返します。このメソッドは、1 つの結果につき 1 回だけ呼び出す必要があります。ResultSet オブジェクトであるか、または結果がない場合は -1SQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合execute(java.lang.String)boolean getMoreResults()
                       throws SQLException
Statement オブジェクトの次の結果に移動します。この結果が ResultSet オブジェクトの場合は true を返し、getResultSet メソッドで得られた現在の ResultSet オブジェクトをすべて暗黙にクローズします。
次に該当する場合、結果はありません。
     // stmt is a Statement object
     ((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
 ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は falseSQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合execute(java.lang.String)void setFetchDirection(int direction)
                       throws SQLException
Statement オブジェクトを使用して作成された ResultSet オブジェクトの行が処理される方向についてのヒントをドライバに提供します。デフォルト値は ResultSet.FETCH_FORWARD です。
 
このメソッドは、この Statement オブジェクトによって生成される結果セットのデフォルトのフェッチ方向を設定します。各結果セットは、それ自身のフェッチ方向を取得および設定するための独自のメソッドを持ちます。
direction - 行を処理する初期方向SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または指定された方向が ResultSet.FETCH_FORWARD、ResultSet.FETCH_REVERSE、または ResultSet.FETCH_UNKNOWN のどれでもない場合getFetchDirection()int getFetchDirection()
                      throws SQLException
Statement オブジェクトから生成された結果セットのデフォルトである、データベーステーブルから行をフェッチする方向を取得します。この Statement オブジェクトが setFetchDirection メソッドを呼び出してフェッチ方向を設定していない場合、戻り値は実装に依存します。Statement オブジェクトから生成された結果セットのデフォルトのフェッチ方向SQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合setFetchDirection(int)void setFetchSize(int rows)
                  throws SQLException
Statement で作成された ResultSet オブジェクトでより多くの行が必要なときにデータベースから取り出す必要がある行数についてのヒントを JDBC ドライバに提供します。指定された値が 0 の場合、ヒントは無視されます。デフォルト値はゼロです。rows - フェッチする行数SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または条件 rows >= 0 が満たされない場合。getFetchSize()int getFetchSize()
                 throws SQLException
Statement オブジェクトから生成された ResultSet オブジェクトのデフォルトのフェッチサイズである、結果セットの行数を取得します。この Statement オブジェクトが setFetchSize メソッドを呼び出してフェッチサイズを設定していない場合、戻り値は実装に依存します。Statement オブジェクトから生成された結果セットのデフォルトのフェッチサイズSQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合setFetchSize(int)int getResultSetConcurrency()
                            throws SQLException
Statement オブジェクトから生成された ResultSet オブジェクトの結果セットの並行処理を取得します。ResultSet.CONCUR_READ_ONLY または ResultSet.CONCUR_UPDATABLESQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合int getResultSetType()
                     throws SQLException
Statement オブジェクトから生成された ResultSet オブジェクトの結果セットのタイプを取得します。ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE、ResultSet.TYPE_SCROLL_SENSITIVE のいずれかSQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合void addBatch(String sql) throws SQLException
Statement オブジェクトの現在のコマンドのリストに、指定された SQL コマンドを追加します。このリストのコマンドは executeBatch メソッドを呼び出すことにより、バッチとして実行できます。
 
注: このメソッドを PreparedStatement または CallableStatement に対して呼び出すことはできません。
sql - 通常は SQL INSERT 文または UPDATE 文SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、ドライバがバッチ更新をサポートしない場合、メソッドが PreparedStatement または CallableStatement で呼び出された場合executeBatch(), DatabaseMetaData.supportsBatchUpdates()void clearBatch()
                throws SQLException
Statement オブジェクトの現在の SQL コマンドリストを空にします。
 SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、またはドライバがバッチ更新をサポートしない場合addBatch(java.lang.String), DatabaseMetaData.supportsBatchUpdates()int[] executeBatch()
                   throws SQLException
int 要素は、バッチ内のコマンドに対応して順序付けられます。つまり、バッチに追加された順序に従って順序付けられます。executeBatch メソッドによって返される配列内の要素は、次のいずれか 1 つに該当します。
 SUCCESS_NO_INFO の値 -- コマンドが正常に処理されたが、影響を受けた行数が不明なことを示します
 
バッチ更新内のコマンドの 1 つが正常に実行できなかった場合、このメソッドは BatchUpdateException をスローし、JDBC ドライバはバッチ内の残りのコマンドの処理を継続することも、中止することもできます。ただし、ドライバの動作は特定の DBMS と一貫性を保つ必要があり、常にコマンドの処理を継続するか、あるいは継続しないかのどちらかになります。失敗後、ドライバが処理を継続する場合は、BatchUpdateException.getUpdateCounts メソッドで返される配列には、バッチ内のコマンドと同じ数の要素が格納され、それらの要素の 1 つ以上が次に該当します。
 
EXECUTE_FAILED の値 -- 失敗したコマンドが正常に実行されたことを示し、コマンドが失敗したあとに、ドライバがコマンドの処理を継続した場合に限り発生します。
 
Java 2 SDK, Standard Edition, Version 1.3 では、使用できる実装および戻り値が修正されて、BatchUpdateException オブジェクトがスローされたあとにバッチ更新内のコマンドの処理を継続できるオプションが用意されています。
SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、またはドライバがバッチ文をサポートしない場合データベースに送信されたコマンドの 1 つが正常に実行されなかった場合や、結果セットを返そうとすると BatchUpdateException (SQLException のサブクラス) がスローされるSQLTimeoutException - ドライバが、setQueryTimeout メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement の取り消しを試みたときaddBatch(java.lang.String), DatabaseMetaData.supportsBatchUpdates()Connection getConnection() throws SQLException
Statement オブジェクトを生成した Connection オブジェクトを取得します。SQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合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_RESULT、Statement.KEEP_CURRENT_RESULT、または Statement.CLOSE_ALL_RESULTSResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は falseSQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または指定された引数が Statement.CLOSE_CURRENT_RESULT、Statement.CLOSE_ALL_RESULTS、または Statement.KEEP_CURRENT_RESULT のどれでもない場合SQLFeatureNotSupportedException - DatabaseMetaData.supportsMultipleOpenResults が false を返し、引数として Statement.KEEP_CURRENT_RESULT または Statement.CLOSE_ALL_RESULTS が指定されている場合。execute(java.lang.String)ResultSet getGeneratedKeys() throws SQLException
Statement オブジェクトを実行した結果として作成された自動生成キーを取得します。この Statement オブジェクトがキーを生成しなかった場合は、空の ResultSet オブジェクトが返されます。
注: 自動生成キーを表す列が指定されなかった場合、JDBC ドライバ実装では、自動生成キーを表すのに最適な列を判断します。
Statement オブジェクトの実行で生成された自動生成キーを含む ResultSet オブジェクトSQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException
Statement オブジェクトによって生成された自動生成キーを検索可能にするかどうかについて指定されたフラグでドライバに通知します。SQL 文が INSERT 文でない場合、または自動生成キーを返すことができる SQL 文でない場合 (そのような文のリストはベンダー固有)、ドライバはフラグを無視します。
注: このメソッドを PreparedStatement または CallableStatement に対して呼び出すことはできません。
sql - SQL INSERT 文、UPDATE 文、または DELETE 文のような SQL データ操作言語 (DML) 文、あるいは DDL 文のような何も返さない SQL 文autoGeneratedKeys - 自動生成キーを検索可能にするかどうかを示すフラグ。定数 Statement.RETURN_GENERATED_KEYS または Statement.NO_GENERATED_KEYSSQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、指定された SQL 文が ResultSet オブジェクトを返す場合、指定された定数が許可されているものでない場合、メソッドが PreparedStatement または CallableStatement で呼び出された場合SQLFeatureNotSupportedException - JDBC ドライバが定数 Statement.RETURN_GENERATED_KEYS を指定したこのメソッドをサポートしない場合SQLTimeoutException - ドライバが、setQueryTimeout メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement の取り消しを試みたときint executeUpdate(String sql, int[] columnIndexes) throws SQLException
INSERT 文でない場合、または自動生成キーを返すことができる SQL 文でない場合 (そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。
注: このメソッドを PreparedStatement または CallableStatement に対して呼び出すことはできません。
sql - SQL INSERT 文、UPDATE 文、または DELETE 文のような SQL データ操作言語 (DML) 文、あるいは DDL 文のような何も返さない SQL 文columnIndexes - 挿入された行から返される列を示す列インデックスの配列SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、SQL 文が ResultSet オブジェクトを返す場合、このメソッドに指定された 2 番目の引数が、有効な列インデックスを要素とするint 配列ではない場合、メソッドが PreparedStatement または CallableStatement で呼び出された場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合SQLTimeoutException - ドライバが、setQueryTimeout メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement の取り消しを試みたときint executeUpdate(String sql, String[] columnNames) throws SQLException
INSERT 文でない場合、または自動生成キーを返すことができる SQL 文でない場合 (そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。
注: このメソッドを PreparedStatement または CallableStatement に対して呼び出すことはできません。
sql - SQL INSERT 文、UPDATE 文、または DELETE 文のような SQL データ操作言語 (DML) 文、あるいは DDL 文のような何も返さない SQL 文columnNames - 挿入された行から返される列の名前の配列INSERT 文、UPDATE 文、DELETE 文の場合は行数。何も返さない SQL 文の場合は 0SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、SQL 文が ResultSet オブジェクトを返す場合、このメソッドに指定された 2 番目の引数が、有効な列名を要素とする String 配列ではない場合、メソッドが PreparedStatement または CallableStatement で呼び出された場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合SQLTimeoutException - ドライバが、setQueryTimeout メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement の取り消しを試みたときboolean execute(String sql, int autoGeneratedKeys) throws SQLException
INSERT 文でない場合、または自動生成キーを返すことができる SQL 文でない場合 (そのような文のリストはベンダー固有)、ドライバはこの信号を無視します。
 いくつかの (一般的でない) 状況では、単一の SQL 文が複数の結果セットあるいは更新カウントを返すことがあります。複数の結果を返すことがあることがわかっているストアドプロシージャーを実行中、または未知の SQL 文字列を動的に実行中でないかぎり、通常はこれを無視できます。
execute メソッドは、SQL 文を実行し最初の結果の形式を示します。次に、getResultSet または getUpdateCount メソッドを使用して結果を取得します。そして、getMoreResults により引き続き任意の結果の取得 (複数可) に移動します。
注: このメソッドを PreparedStatement または CallableStatement に対して呼び出すことはできません。
sql - 任意の SQL 文autoGeneratedKeys - getGeneratedKeys メソッドを使用して、自動生成キーを検索可能にするかどうかを示す定数。Statement.RETURN_GENERATED_KEYSまたは Statement.NO_GENERATED_KEYSResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は falseSQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、このメソッドに指定された 2 番目のパラメータが Statement.RETURN_GENERATED_KEYS または Statement.NO_GENERATED_KEYS でない場合、メソッドが PreparedStatement または CallableStatement で呼び出された場合SQLFeatureNotSupportedException - JDBC ドライバが定数 Statement.RETURN_GENERATED_KEYS を指定したこのメソッドをサポートしない場合SQLTimeoutException - ドライバが、setQueryTimeout メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement の取り消しを試みたときgetResultSet(), getUpdateCount(), getMoreResults(), getGeneratedKeys()boolean execute(String sql, int[] columnIndexes) throws SQLException
INSERT 文でない場合、または自動生成キーを返すことができる SQL 文でない場合 (そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。
 いくつかの (一般的でない) 状況では、単一の SQL 文が複数の結果セットあるいは更新カウントを返すことがあります。複数の結果を返すことがあることがわかっているストアドプロシージャーを実行中、または未知の SQL 文字列を動的に実行中でないかぎり、通常はこれを無視できます。
execute メソッドは、SQL 文を実行し最初の結果の形式を示します。次に、getResultSet または getUpdateCount メソッドを使用して結果を取得します。そして、getMoreResults により引き続き任意の結果の取得 (複数可) に移動します。
注: このメソッドを PreparedStatement または CallableStatement に対して呼び出すことはできません。
sql - 任意の SQL 文columnIndexes - getGeneratedKeys メソッドの呼び出しによって検索可能にする挿入行の列インデックスの配列ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は falseSQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、このメソッドに渡された int 配列の要素が有効な列インデックスでない場合、メソッドが PreparedStatement または CallableStatement で呼び出された場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合SQLTimeoutException - ドライバが、setQueryTimeout メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement の取り消しを試みたときgetResultSet(), getUpdateCount(), getMoreResults()boolean execute(String sql, String[] columnNames) throws SQLException
INSERT 文でない場合、または自動生成キーを返すことができる SQL 文でない場合 (そのような文のリストはベンダー固有)、ドライバはこの配列を無視します。
 いくつかの (一般的でない) 状況では、単一の SQL 文が複数の結果セットあるいは更新カウントを返すことがあります。複数の結果を返すことがあることがわかっているストアドプロシージャーを実行中、または未知の SQL 文字列を動的に実行中でないかぎり、通常はこれを無視できます。
execute メソッドは、SQL 文を実行し最初の結果の形式を示します。次に、getResultSet または getUpdateCount メソッドを使用して結果を取得します。そして、getMoreResults により引き続き任意の結果の取得 (複数可) に移動します。
注: このメソッドを PreparedStatement または CallableStatement に対して呼び出すことはできません。
sql - 任意の SQL 文columnNames - getGeneratedKeys メソッドの呼び出しによって検索可能にする挿入行の列名の配列ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は falseSQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、このメソッドに渡された String 配列の要素が有効な列名でない場合、メソッドが PreparedStatement または CallableStatement で呼び出された場合SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合SQLTimeoutException - ドライバが、setQueryTimeout メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement の取り消しを試みたときgetResultSet(), getUpdateCount(), getMoreResults(), getGeneratedKeys()int getResultSetHoldability()
                            throws SQLException
Statement オブジェクトから生成された ResultSet オブジェクトの結果セットの保持機能を取得します。ResultSet.HOLD_CURSORS_OVER_COMMIT または ResultSet.CLOSE_CURSORS_AT_COMMITSQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合boolean isClosed()
                 throws SQLException
Statement オブジェクトがクローズされているかどうかを取得します。Statement で close メソッドが呼び出されるか、または自動的にクローズされる場合、このオブジェクトはクローズされます。Statement オブジェクトがクローズされている場合は true、まだオープンの状態の場合は falseSQLException - データベースアクセスエラーが発生した場合void setPoolable(boolean poolable)
                 throws SQLException
Statement をプールすること、またはプールしないことを要求します。指定された値は、文のプール実装のヒントで、アプリケーションで文がプールされる必要があるかどうかを示します。ヒントが使用されるかどうかは、文のプール管理プログラムによって異なります。
 文のプール可能な値は、ドライバによって実装される内部文キャッシュと、アプリケーションサーバーやその他のアプリケーションによって実装される外部文キャッシュの両方に適用されます。
デフォルトで、Statement は作成時にプール可能ではありませんが、PreparedStatement および CallableStatement は作成時にプール可能です。
 
poolable - true の場合は文をプールすること、false の場合は文をプールしないことを要求する
 SQLException - このメソッドがクローズされた Statement で呼び出された場合
boolean isPoolable()
                   throws SQLException
Statement がプール可能かどうかを示す値を返します。
 Statement がプール可能である場合は true、そうでない場合は false
 SQLException - このメソッドがクローズされた Statement で呼び出された場合
setPoolable(boolean)void closeOnCompletion()
                       throws SQLException
Statement がクローズされることを示します。Statement の実行によって結果セットが生成されない場合、このメソッドは無効です。
 
注: closeOnCompletion を複数回呼び出してもこの Statement への効果は切り替わりません。ただし、closeOnCompletion の呼び出しは、文のその後の実行と、現在開いていて依存されている結果セットがある文の両方に影響します。
SQLException - このメソッドがクローズされた Statement で呼び出された場合boolean isCloseOnCompletion()
                            throws SQLException
Statement がクローズされるかどうかを示す値を取得します。Statement が、依存するすべての結果セットがクローズされたときにクローズされる場合は true、そうでない場合は falseSQLException - このメソッドがクローズされた Statement で呼び出された場合 バグまたは機能を送信 
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.