JavaTM Platform
Standard Ed. 6

java.sql
インタフェース Statement

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

public interface Statement
extends Wrapper

 

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

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

関連項目:
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 リソースが解放されるのを待つのではなく、ただちにそれらを解放します。
 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 文を実行します。
 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 オブジェクトの次の結果に移動します。
 boolean getMoreResults(int current)
          Statement オブジェクトの次の結果に移動します。
 int getQueryTimeout()
          ドライバが Statement オブジェクトの実行を待つ秒数を取得します。
 ResultSet getResultSet()
          ResultSet オブジェクトとして現在の結果を取得します。
 int getResultSetConcurrency()
          この Statement オブジェクトから生成された ResultSet オブジェクトの結果セットの並行性を取得します。
 int getResultSetHoldability()
          この Statement オブジェクトから生成された ResultSet オブジェクトの結果セットの保持機能を取得します。
 int getResultSetType()
          この Statement オブジェクトから生成された ResultSet オブジェクトの結果セットの型を取得します。
 int getUpdateCount()
          更新カウントとして現在の結果を取得します。
 SQLWarning getWarnings()
          この Statement オブジェクトに関する呼び出しによって報告される最初の警告を取得します。
 boolean isClosed()
          この 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 オブジェクトの実行を待つ秒数を、指定された秒数に設定します。
 
インタフェース java.sql.Wrapper から継承されたメソッド
isWrapperFor, unwrap
 

フィールドの詳細

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 文を実行します。

パラメータ:
sql - データベースに送られる SQL 文。通常静的 SQL SELECT
戻り値:
指定されたクエリーによって作成されたデータを含む ResultSet オブジェクト。null にはならない
例外:
SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または指定された SQL 文が単一の ResultSet オブジェクト以外の何も生成しない場合

executeUpdate

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

パラメータ:
sql - SQL INSERT 文、UPDATE 文、または DELETE 文のような SQL データ操作言語 (DML) 文、あるいは DDL 文のような何も返さない SQL 文
戻り値:
(1) SQL データ操作言語 (DML) 文の場合は行数、(2) 何も返さない SQL 文の場合は 0
例外:
SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または指定された SQL 文が ResultSet オブジェクトを生成する場合

close

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

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

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

例外:
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 文をデータベースに送る前にエスケープ置き換えを実行します。 注:用意された文は、通常呼び出す前に構文解析されているので、PreparedStatement オブジェクトに対するエスケープ処理を無効にしても効果はありません。

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

getQueryTimeout

int getQueryTimeout()
                    throws SQLException
ドライバが Statement オブジェクトの実行を待つ秒数を取得します。この時間を経過すると、SQLException がスローされます。

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

setQueryTimeout

void setQueryTimeout(int seconds)
                     throws SQLException
ドライバが Statement オブジェクトの実行を待つ秒数を、指定された秒数に設定します。この制限時間を経過すると、SQLException がスローされます。JDBC ドライバは、この制限を executeexecuteQueryexecuteUpdate の各メソッドに適用する必要があります。JDBC ドライバ実装は、この制限を ResultSet メソッドに適用することもあります (詳細は、ドライバベンダーのマニュアルを参照してください)。

パラメータ:
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 により引き続き任意の結果の取得 (複数可) に移動します。

パラメータ:
sql - 任意の SQL 文
戻り値:
最初の結果が ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は false
例外:
SQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた 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_INSENSITIVE、または ResultSet.TYPE_SCROLL_SENSITIVE のうちの 1 つ
例外:
SQLException - データベースアクセスエラーが発生した場合、またはこのメソッドがクローズされた Statement について呼び出された場合
導入されたバージョン:
1.2

addBatch

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

パラメータ:
sql - 通常は SQL INSERT 文または UPDATE
例外:
SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、またはドライバがバッチ更新をサポートしない場合
導入されたバージョン:
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 のサブクラス) がスローされる
導入されたバージョン:
1.3
関連項目:
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 のうちの 1 つ
戻り値:
次の結果が ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は false
例外:
SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、または指定された引数が Statement.CLOSE_CURRENT_RESULTStatement.KEEP_CURRENT_RESULT、または Statement.CLOSE_ALL_RESULTS のどれでもない場合
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 文でない場合 (そのような文のリストはベンダー固有)、ドライバはフラグを無視します。

パラメータ:
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 オブジェクトを返す場合、または指定された定数が許可された定数のどれでもない場合
SQLFeatureNotSupportedException - JDBC ドライバが定数 Statement.RETURN_GENERATED_KEYS を指定したこのメソッドをサポートしない場合
導入されたバージョン:
1.4

executeUpdate

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

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

executeUpdate

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

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

execute

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

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

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

パラメータ:
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 でもない場合
SQLFeatureNotSupportedException - JDBC ドライバが定数 Statement.RETURN_GENERATED_KEYS を指定したこのメソッドをサポートしない場合
導入されたバージョン:
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 により引き続き任意の結果の取得 (複数可) に移動します。

パラメータ:
sql - 任意の SQL 文
columnIndexes - getGeneratedKeys メソッドの呼び出しによって検索可能にされる挿入行の列インデックスの配列
戻り値:
最初の結果が ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は false
例外:
SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、またはこのメソッドに渡された int 配列の要素が有効な列インデックスではない場合
SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合
導入されたバージョン:
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 により引き続き任意の結果の取得 (複数可) に移動します。

パラメータ:
sql - 任意の SQL 文
columnNames - getGeneratedKeys メソッドの呼び出しによって検索可能にされる挿入行の列名の配列
戻り値:
次の結果が ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は false
例外:
SQLException - データベースアクセスエラーが発生した場合、このメソッドがクローズされた Statement で呼び出された場合、またはこのメソッドに渡された String 配列の要素が有効な列名ではない場合
SQLFeatureNotSupportedException - JDBC ドライバがこのメソッドをサポートしない場合
導入されたバージョン:
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)

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。