public interface Statement extends Wrapper, AutoCloseable
静的 SQL 文を実行し、作成された結果を返すために使用されるオブジェクトです。
デフォルトでは、Statement
オブジェクトごとに、同時に開くことができる ResultSet
オブジェクトは 1 つだけです。したがって、1 つの ResultSet
オブジェクトの読み込みが、別の読み込みにより割り込まれると、各々は異なった Statement
オブジェクトによって生成されたことになります。Statement
インタフェースのすべての実行メソッドは、文の現在の 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 がクローズされることを示します。 |
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, unwrap
static 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
、インタフェース: AutoCloseable
SQLException
- データベースアクセスエラーが発生した場合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
、無効にする場合は false
SQLException
- データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた 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
オブジェクト。警告がない場合は null
SQLException
- データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた 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
。更新カウントであるか、または結果がない場合は false
SQLException
- データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement
で呼び出された場合、またはメソッドが PreparedStatement
または CallableStatement
で呼び出された場合SQLTimeoutException
- ドライバが、setQueryTimeout
メソッドで指定されたタイムアウト値が経過したと判定し、少なくとも現在実行中の Statement
の取り消しを試みたときgetResultSet()
, getUpdateCount()
, getMoreResults()
ResultSet getResultSet() throws SQLException
ResultSet
オブジェクトとして現在の結果を取得します。このメソッドは、1 つの結果につき 1 回だけ呼び出す必要があります。ResultSet
オブジェクトとしての現在の結果。結果が更新カウントであるか、または結果がない場合は null
SQLException
- データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた 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
。更新カウントであるか、または結果がない場合は false
SQLException
- データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた 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_UPDATABLE
SQLException
- データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた 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_RESULTS
ResultSet
オブジェクトの場合は true
。更新カウントであるか、または結果がない場合は false
SQLException
- データベースアクセスエラーが発生した場合、このメソッドがクローズされた 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_KEYS
SQLException
- データベースアクセスエラーが発生した場合、このメソッドがクローズされた 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_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
の取り消しを試みたとき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
。更新カウントであるか、または結果がない場合は false
SQLException
- データベースアクセスエラーが発生した場合、このメソッドがクローズされた 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
。更新カウントであるか、または結果がない場合は false
SQLException
- データベースアクセスエラーが発生した場合、このメソッドがクローズされた 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_COMMIT
SQLException
- データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた 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
、そうでない場合は false
SQLException
- このメソッドがクローズされた Statement
で呼び出された場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.