- すべてのスーパー・インタフェース:
AutoCloseable
,Wrapper
- 既知のすべてのサブインタフェース:
CallableStatement
,PreparedStatement
静的SQL文を実行し、作成された結果を返すために使用されるオブジェクトです。
デフォルトでは、Statement
オブジェクトごとに、同時に開くことができるResultSet
オブジェクトは1つだけです。 したがって、1つのResultSet
オブジェクトの読込みが、別の読込みにより割り込まれると、各々は異なったStatement
オブジェクトによって生成されたことになります。 Statement
インタフェースのすべての実行メソッドは、文の現在のResultSet
オブジェクトでオープンされているものが存在すれば、それを暗黙にクローズします。
- 導入されたバージョン:
- 1.1
- 関連項目:
-
フィールドのサマリー
修飾子と型フィールド説明static final int
getMoreResults
が呼び出されたときに、直前までオープンされていたすべてのResultSet
オブジェクトがクローズされることを示す定数です。static final int
getMoreResults
が呼び出されたときに、現在のResultSet
オブジェクトがクローズされることを示す定数です。static final int
バッチ文の実行中にエラーが発生したことを示す定数です。static final int
getMoreResults
が呼び出されたときに、現在のResultSet
オブジェクトがクローズされないことを示す定数です。static final int
生成されたキーを検索可能にしないことを示す定数です。static final int
生成されたキーを検索可能にすることを示す定数です。static final int
バッチ文が正常に実行されたが、影響を受けた行数が不明なことを示す定数です。 -
メソッドのサマリー
修飾子と型メソッド説明void
このStatement
オブジェクトの現在のコマンドのリストに、指定されたSQLコマンドを追加します。void
cancel()
DBMSおよびドライバの両方がSQL文の終了をサポートする場合に、このStatement
オブジェクトを取り消します。void
このStatement
オブジェクトの現在のSQLコマンド・リストを空にします。void
このStatement
オブジェクトに関して報告されたすべての警告をクリアします。void
close()
自動的にクローズされるときにStatement
オブジェクトのデータベースとJDBCリソースが解放されるのを待つのではなく、ただちにそれらを解放します。void
このStatementに依存するすべての結果セットがクローズされたときにこのStatement
がクローズされることを示します。default String
enquoteIdentifier
(String identifier, boolean alwaysQuote) SQL識別子を返します。default String
enquoteLiteral
(String val) 単一引用符で囲まれたString
を返します。default String
一重引用符で囲まれ、大文字のNで始まる国別文字セット・リテラルを表すString
を返します。boolean
複数の結果を返す可能性のある指定されたSQL文を実行します。boolean
複数の結果を返す可能性のある指定されたSQL文を実行し、すべての自動生成キーを検索可能にするかどうかについてドライバに通知します。boolean
複数の結果を返す可能性のある指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。boolean
複数の結果を返す可能性のある指定されたSQL文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。int[]
コマンドのバッチをデータベースに送信して実行し、すべてのコマンドが正常に実行されると、更新カウントの配列を返します。default long[]
コマンドのバッチをデータベースに送信して実行し、すべてのコマンドが正常に実行されると、更新カウントの配列を返します。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文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。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文を実行し、指定された配列で示された自動生成キーを検索可能にすることをドライバに通知します。このStatement
オブジェクトを生成したConnection
オブジェクトを取得します。int
このStatement
オブジェクトから生成された結果セットのデフォルトである、データベース表から行をフェッチする方向を取得します。int
このStatement
オブジェクトから生成されたResultSet
オブジェクトのデフォルトのフェッチ・サイズである、結果セットの行数を取得します。このStatement
オブジェクトを実行した結果として作成された自動生成キーを取得します。default long
このStatement
オブジェクトによって生成されるResultSet
オブジェクトに含めることのできる最大行数を取得します。default long
更新カウントとして現在の結果を取得します。結果がResultSet
オブジェクトであるか、または結果がない場合は -1を返します。int
このStatement
オブジェクトによって生成されるResultSet
オブジェクトの文字およびバイナリの各列値に対し返される最大バイト数を取得します。int
このStatement
オブジェクトによって生成されるResultSet
オブジェクトに含めることのできる最大行数を取得します。boolean
Statement
オブジェクトの次の結果に移動します。この結果がResultSet
オブジェクトの場合はtrue
を返し、getResultSet
メソッドで得られた現在のResultSet
オブジェクトをすべて暗黙にクローズします。boolean
getMoreResults
(int current) Statement
オブジェクトの次の結果に移動します。指定されたフラグによって指定された命令に従ってすべての現在のResultSet
オブジェクトを処理し、次の結果がResultSet
オブジェクトの場合はtrue
を返します。int
ドライバがStatement
オブジェクトの実行を待つ秒数を取得します。ResultSet
オブジェクトとして現在の結果を取得します。int
このStatement
オブジェクトから生成されたResultSet
オブジェクトの結果セットの並行処理を取得します。int
このStatement
オブジェクトから生成されたResultSet
オブジェクトの結果セットの保持機能を取得します。int
このStatement
オブジェクトから生成されたResultSet
オブジェクトの結果セットのタイプを取得します。int
更新カウントとして現在の結果を取得します。結果がResultSet
オブジェクトであるか、または結果がない場合は -1を返します。このStatement
オブジェクトに関する呼出しによって報告される最初の警告を取得します。boolean
isClosed()
このStatement
オブジェクトがクローズされているかどうかを取得します。boolean
このStatementに依存するすべての結果セットがクローズされたときにこのStatement
がクローズされるかどうかを示す値を取得します。boolean
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
オブジェクトの実行を待つ秒数を、指定された秒数に設定します。インタフェース java.sql.Wrapperで宣言されたメソッド
isWrapperFor, unwrap
-
フィールド詳細
-
CLOSE_CURRENT_RESULT
static final int CLOSE_CURRENT_RESULTgetMoreResults
が呼び出されたときに、現在のResultSet
オブジェクトがクローズされることを示す定数です。- 導入されたバージョン:
- 1.4
- 関連項目:
-
KEEP_CURRENT_RESULT
static final int KEEP_CURRENT_RESULTgetMoreResults
が呼び出されたときに、現在のResultSet
オブジェクトがクローズされないことを示す定数です。- 導入されたバージョン:
- 1.4
- 関連項目:
-
CLOSE_ALL_RESULTS
static final int CLOSE_ALL_RESULTSgetMoreResults
が呼び出されたときに、直前までオープンされていたすべての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
オブジェクトを返す、指定されたSQL文を実行します。ノート: このメソッドを
PreparedStatement
またはCallableStatement
に対して呼び出すことはできません。- パラメータ:
sql
- データベースに送られるSQL文。通常静的SQLSELECT
文- 戻り値:
- 指定されたクエリーによって作成されたデータを含む
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
- SQLINSERT
文、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
オブジェクトの文字およびバイナリの各列値に対し返される最大バイト数を取得します。 この制限値は、BINARY
、VARBINARY
、LONGVARBINARY
、CHAR
、VARCHAR
、NCHAR
、NVARCHAR
、LONGNVARCHAR
、およびLONGVARCHAR
の各列だけに適用されます。 制限値を超えたデータは通知なしに破棄されます。- 戻り値:
- 文字値およびバイナリ値を格納する列に対する現在の列サイズの制限値。ゼロは無制限を意味する
- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatement
について呼び出された場合- 関連項目:
-
setMaxFieldSize
void setMaxFieldSize(int max) throws SQLException このStatement
オブジェクトによって生成されるResultSet
オブジェクトの文字およびバイナリの各列値に対し返される最大バイト数の制限を設定します。 この制限値は、BINARY
、VARBINARY
、LONGVARBINARY
、CHAR
、VARCHAR
、NCHAR
、NVARCHAR
、LONGNVARCHAR
、およびLONGVARCHAR
の各フィールドだけに適用されます。 制限値を超えたデータは通知なしに破棄されます。 移植性を最大限にするには、256より大きい値を使用します。- パラメータ:
max
- バイト単位の新しい列サイズの制限値。ゼロは無制限を意味する- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、または条件max >= 0
が満たされない場合- 関連項目:
-
getMaxRows
int getMaxRows() throws SQLExceptionこのStatement
オブジェクトによって生成されるResultSet
オブジェクトに含めることのできる最大行数を取得します。 制限値を超えた行は通知なしに除外されます。- 戻り値:
- この
Statement
オブジェクトによって生成されるResultSet
オブジェクトの現在の最大行数。ゼロは無制限を意味する - 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatement
について呼び出された場合- 関連項目:
-
setMaxRows
void setMaxRows(int max) throws SQLException このStatement
オブジェクトで作成された任意のResultSet
オブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。 制限値を超えた行は通知なしに除外されます。- パラメータ:
max
- 新しい最大行数の制限値。ゼロは無制限を意味する- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、または条件max >= 0
が満たされない場合- 関連項目:
-
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
void setQueryTimeout(int seconds) throws SQLException ドライバがStatement
オブジェクトの実行を待つ秒数を、指定された秒数に設定します。 デフォルトでは、実行中の文が完了するまでに許可されている時間に制限はありません。 この制限時間を経過すると、SQLTimeoutException
がスローされます。 JDBCドライバは、この制限をexecute
、executeQuery
、executeUpdate
の各メソッドに適用する必要があります。ノート: JDBCドライバ実装は、この制限を
ResultSet
メソッドに適用することもあります(詳細は、ドライバ・ベンダーのマニュアルを参照してください)。ノート:
Statement
バッチ処理の場合、これは、タイム・アウトがaddBatch
メソッドによって追加された個々のSQLコマンドに適用されるか、executeBatch
メソッドによって呼び出されたSQLコマンドのバッチ全体に適用されるかに関して定義される実装です(詳細については、ドライバ・ベンダーのドキュメントを参照してください)。- パラメータ:
seconds
- 新しいクエリー・タイムアウトの制限値の秒数。ゼロは無制限を意味する- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、または条件seconds >= 0
が満たされない場合- 関連項目:
-
cancel
void cancel() throws SQLExceptionDBMSおよびドライバの両方が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
ResultSet getResultSet() throws SQLExceptionResultSet
オブジェクトとして現在の結果を取得します。 このメソッドは、1つの結果につき1回だけ呼び出す必要があります。- 戻り値:
ResultSet
オブジェクトとしての現在の結果。結果が更新カウントであるか、または結果がない場合はnull
- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatement
について呼び出された場合- 関連項目:
-
getUpdateCount
int getUpdateCount() throws SQLException更新カウントとして現在の結果を取得します。結果がResultSet
オブジェクトであるか、または結果がない場合は -1を返します。 このメソッドは、1つの結果につき1回だけ呼び出す必要があります。- 戻り値:
- 更新カウントしての現在の結果。現在の結果が
ResultSet
オブジェクトであるか、または結果がない場合は -1 - 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatement
について呼び出された場合- 関連項目:
-
getMoreResults
boolean getMoreResults() throws SQLExceptionStatement
オブジェクトの次の結果に移動します。この結果がResultSet
オブジェクトの場合はtrue
を返し、getResultSet
メソッドで得られた現在のResultSet
オブジェクトをすべて暗黙にクローズします。次に該当する場合、結果はありません。
// stmt is a Statement object ((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))
- 戻り値:
- 次の結果が
ResultSet
オブジェクトの場合はtrue
。更新カウントであるか、または結果がない場合はfalse
- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatement
について呼び出された場合- 関連項目:
-
setFetchDirection
void setFetchDirection(int direction) throws SQLException Statement
オブジェクトを使用して作成されたResultSet
オブジェクトの行が処理される方向についてのヒントをドライバに提供します。 デフォルト値はResultSet.FETCH_FORWARD
です。このメソッドは、この
Statement
オブジェクトによって生成される結果セットのデフォルトのフェッチ方向を設定します。 各結果セットは、それ自身のフェッチ方向を取得および設定するための独自のメソッドを持ちます。- パラメータ:
direction
- 行を処理する初期方向- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、または指定された方向がResultSet.FETCH_FORWARD
、ResultSet.FETCH_REVERSE
、またはResultSet.FETCH_UNKNOWN
のどれでもない場合- 導入されたバージョン:
- 1.2
- 関連項目:
-
getFetchDirection
int getFetchDirection() throws SQLExceptionこのStatement
オブジェクトから生成された結果セットのデフォルトである、データベース表から行をフェッチする方向を取得します。 このStatement
オブジェクトがsetFetchDirection
メソッドを呼び出してフェッチ方向を設定していない場合、戻り値は実装に依存します。- 戻り値:
- この
Statement
オブジェクトから生成された結果セットのデフォルトのフェッチ方向 - 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatement
について呼び出された場合- 導入されたバージョン:
- 1.2
- 関連項目:
-
setFetchSize
void setFetchSize(int rows) throws SQLException このStatement
で作成されたResultSet
オブジェクトでより多くの行が必要なときにデータベースから取り出す必要がある行数についてのヒントをJDBCドライバに提供します。 指定された値が0の場合、ヒントは無視されます。 デフォルト値はゼロです。- パラメータ:
rows
- フェッチする行数- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、または条件rows>= 0
が満たされない場合。- 導入されたバージョン:
- 1.2
- 関連項目:
-
getFetchSize
int getFetchSize() throws SQLExceptionこのStatement
オブジェクトから生成されたResultSet
オブジェクトのデフォルトのフェッチ・サイズである、結果セットの行数を取得します。 このStatement
オブジェクトがsetFetchSize
メソッドを呼び出してフェッチ・サイズを設定していない場合、戻り値は実装に依存します。- 戻り値:
- この
Statement
オブジェクトから生成された結果セットのデフォルトのフェッチ・サイズ - 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatement
について呼び出された場合- 導入されたバージョン:
- 1.2
- 関連項目:
-
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_ONLY
、ResultSet.TYPE_SCROLL_INSENSITIVE
、ResultSet.TYPE_SCROLL_SENSITIVE
のいずれか- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatement
について呼び出された場合- 導入されたバージョン:
- 1.2
-
addBatch
void addBatch(String sql) throws SQLException このStatement
オブジェクトの現在のコマンドのリストに、指定されたSQLコマンドを追加します。 このリストのコマンドはexecuteBatch
メソッドを呼び出すことにより、バッチとして実行できます。ノート: このメソッドを
PreparedStatement
またはCallableStatement
に対して呼び出すことはできません。- パラメータ:
sql
- 通常はSQLINSERT
文またはUPDATE
文- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、ドライバがバッチ更新をサポートしない場合、メソッドがPreparedStatement
またはCallableStatement
で呼び出された場合- 導入されたバージョン:
- 1.2
- 関連項目:
-
clearBatch
void clearBatch() throws SQLExceptionこのStatement
オブジェクトの現在のSQLコマンド・リストを空にします。- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、またはドライバがバッチ更新をサポートしない場合- 導入されたバージョン:
- 1.2
- 関連項目:
-
executeBatch
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
オブジェクトがスローされた後にバッチ更新内のコマンドの処理を継続できるオプションが用意されています。- 戻り値:
- バッチ内のコマンドごとに1つの要素が格納されている更新カウントの配列。 配列の要素はコマンドがバッチに追加された順序で並べられる。
- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、またはドライバがバッチ文をサポートしない場合。 データベースに送信されたコマンドの1つが正常に実行されなかった場合や、結果セットを返そうとした場合は、BatchUpdateException
(SQLException
のサブクラス)がスローされる。SQLTimeoutException
- ドライバが、setQueryTimeout
メソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatement
の取消しを試みたとき- 導入されたバージョン:
- 1.2
- 関連項目:
-
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_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
が指定されている場合。- 導入されたバージョン:
- 1.4
- 関連項目:
-
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
- SQLINSERT
文、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
- SQLINSERT
文、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
- SQLINSERT
文、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
- 関連項目:
-
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
- 関連項目:
-
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
- 関連項目:
-
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 SQLExceptionStatement
がプール可能かどうかを示す値を返します。- 戻り値:
Statement
がプール可能である場合はtrue
、そうでない場合はfalse
- 例外:
SQLException
- このメソッドがクローズされたStatement
で呼び出された場合- 導入されたバージョン:
- 1.6
- 関連項目:
-
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
- 関連項目:
-
setLargeMaxRows
default void setLargeMaxRows(long max) throws SQLException このStatement
オブジェクトで作成された任意のResultSet
オブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。 制限値を超えた行は通知なしに除外されます。行制限が
Integer.MAX_VALUE
を超える可能性がある場合は、このメソッドを使用するようにしてください。デフォルト実装は
UnsupportedOperationException
をスローします- パラメータ:
max
- 新しい最大行数の制限値。ゼロは無制限を意味する- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、または条件max >= 0
が満たされない場合- 導入されたバージョン:
- 1.8
- 関連項目:
-
getLargeMaxRows
default long getLargeMaxRows() throws SQLExceptionこのStatement
オブジェクトによって生成されるResultSet
オブジェクトに含めることのできる最大行数を取得します。 制限値を超えた行は通知なしに除外されます。返される行制限が
Integer.MAX_VALUE
を超える可能性がある場合は、このメソッドを使用するようにしてください。デフォルト実装は
0
を返します- 戻り値:
- この
Statement
オブジェクトによって生成されるResultSet
オブジェクトの現在の最大行数。ゼロは無制限を意味する - 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、またはこのメソッドがクローズされたStatement
について呼び出された場合- 導入されたバージョン:
- 1.8
- 関連項目:
-
executeLargeBatch
default long[] executeLargeBatch() throws SQLExceptionコマンドのバッチをデータベースに送信して実行し、すべてのコマンドが正常に実行されると、更新カウントの配列を返します。 返される配列のlong
要素は、バッチ内のコマンドに対応して順序付けられます。つまり、コマンドがバッチに追加された順序に従って順序付けられます。executeLargeBatch
メソッドによって返される配列内の要素は、次のいずれかである可能性があります。- ゼロ以上の数値 -- コマンドが正常に処理されたことを示し、コマンドの実行によって影響を受けたデータベース内の行数を指定する更新カウントです。
SUCCESS_NO_INFO
の値 -- コマンドが正常に処理されたが、影響を受けた行数が不明なことを示しますバッチ更新内のコマンドの1つが正常に実行できなかった場合、このメソッドは
BatchUpdateException
をスローし、JDBCドライバはバッチ内の残りのコマンドの処理を継続することも、中止することもできます。 ただし、ドライバの動作は特定のDBMSと一貫性を保つ必要があり、常にコマンドの処理を継続するか、あるいは継続しないかのどちらかになります。 失敗後、ドライバが処理を継続する場合は、BatchUpdateException.getLargeUpdateCounts
メソッドで返される配列にバッチ内のコマンドと同じ数の要素が格納され、それらの要素の1つ以上が次に該当します。EXECUTE_FAILED
の値 -- 失敗したコマンドが正常に実行されたことを示し、コマンドが失敗したあとに、ドライバがコマンドの処理を継続した場合に限り発生します。
返される行数が
Integer.MAX_VALUE
を超える可能性がある場合は、このメソッドを使用するようにしてください。デフォルト実装は
UnsupportedOperationException
をスローします- 戻り値:
- バッチ内のコマンドごとに1つの要素が格納されている更新カウントの配列。 配列の要素はコマンドがバッチに追加された順序で並べられる。
- 例外:
SQLException
- データベース・アクセス・エラーが発生した場合、このメソッドがクローズされたStatement
で呼び出された場合、またはドライバがバッチ文をサポートしない場合。 データベースに送信されたコマンドの1つが正常に実行されなかった場合や、結果セットを返そうとした場合は、BatchUpdateException
(SQLException
のサブクラス)がスローされる。SQLTimeoutException
- ドライバが、setQueryTimeout
メソッドで指定されたタイム・アウト値が経過したと判定し、少なくとも現在実行中のStatement
の取消しを試みたとき- 導入されたバージョン:
- 1.8
- 関連項目:
-
executeLargeUpdate
default long executeLargeUpdate(String sql) throws SQLException 指定されたSQL文を実行します。SQL文は、INSERT
文、UPDATE
文、DELETE
文、またはSQL DDL文のような何も返さないSQL文の場合があります。返される行数が
Integer.MAX_VALUE
を超える可能性がある場合は、このメソッドを使用するようにしてください。ノート: このメソッドを
PreparedStatement
またはCallableStatement
に対して呼び出すことはできません。デフォルト実装は
UnsupportedOperationException
をスローします- パラメータ:
sql
- SQLINSERT
文、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
- SQLINSERT
文、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
- SQLINSERT
文、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
- SQLINSERT
文、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
を返します。 文字列内の一重引用符は、二重引用符で置き換えられます。変換の例: 値 結果 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識別子である場合:alwaysQuote
がfalse
の場合は元の値を返します。alwaysQuote
がtrue
の場合、区切り識別子を返します。
identifier
が単純なSQL識別子でない場合、identifier
は、まだ存在しない場合は二重引用符で囲まれます。 データソースが区切られた識別子の二重引用符をサポートしていない場合、識別子はDatabaseMetaData.getIdentifierQuoteString()
から返された文字列で囲む必要があります。 データソースが区切られた識別子をサポートしていない場合は、SQLFeatureNotSupportedException
をスローする必要があります。identifier
に、区切られた識別子に無効な文字が含まれているか、識別子の長さがデータソースに対して無効な場合、SQLException
がスローされます。- 実装要件:
- デフォルトの実装では、次の条件を使用して有効な単純なSQL識別子を判別します:
- 文字列は二重引用符で囲まれていません
- 最初の文字は、a〜zまたはA〜Zのアルファベット文字です
- 名前には、英数字または文字"_"のみが含まれています
SQLException
がスローされます:identifier
にはnull
文字または二重引用符が含まれており、単純なSQL識別子ではありません。identifier
の長さが1未満または128文字を超える
変換の例: identifier alwaysQuote 結果 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
を返します。 文字列内の一重引用符は、二重引用符で置き換えられます。変換の例: 値 結果 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
-