Java プラットフォーム 1.2

java.sql
インタフェース Statement

既知のサブインタフェースの一覧:
CallableStatement, PreparedStatement

public abstract interface Statement

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

Statement ごとに 1 つの ResultSet だけがいつでもオープンできます。したがって、ひとつの ResultSet の読み込みが、別の読み込みにより割り込まれると、各々は異なった Statement によって生成されたことになります。すべての文の execute メソッドは、文の現在の ResultSet でオープンされているものが存在すれば、それをクローズします。

関連項目:
Connection.createStatement(), ResultSet

メソッドの概要
 void addBatch(String sql)
          JDBC 2.0 Statement の現在のコマンドのバッチに SQL コマンドを追加します。
 void cancel()
          DBMS およびドライバの両方が SQL 文の終了をサポートする場合に、この Statement オブジェクトを取り消します。
 void clearBatch()
          JDBC 2.0 現在のバッチのコマンドのセットを空にします。
 void clearWarnings()
          この Statement オブジェクトに関して報告されたすべての警告をクリアします。
 void close()
          自動的にクローズされるときに Statement オブジェクトのデータベースと JDBC リソースが解放されるのを待つのではなく、ただちにそれらを解放します。
 boolean execute(String sql)
          複数の結果を返す可能性のある SQL 文を実行します。
 int[] executeBatch()
          JDBC 2.0 コマンドのバッチをデータベースに送信して実行します。
 ResultSet executeQuery(String sql)
          単一の結果を返す SQL 文を実行します。
 int executeUpdate(String sql)
          SQL INSERT 文、UPDATE 文、または DELETE 文を実行します。
 Connection getConnection()
          JDBC 2.0 この Statement オブジェクトを生成した Connection オブジェクトを返します。
 int getFetchDirection()
          JDBC 2.0 この Statement オブジェクトから生成された結果セットのデフォルトである、データベーステーブルから行をフェッチする方向を取得します。
 int getFetchSize()
          JDBC 2.0 この Statement オブジェクトから生成された結果セットのデフォルトのフェッチサイズである、結果セットの行数を取得します。
 int getMaxFieldSize()
          任意のカラム値で許可される最大のバイト数を返します。
 int getMaxRows()
          ResultSet が含むことのできる最大の行数を取得します。
 boolean getMoreResults()
          Statement の次の結果に移動します。
 int getQueryTimeout()
          ドライバが Statement の実行を待つ秒数を取得します。
 ResultSet getResultSet()
          ResultSet オブジェクトとして現在の結果を返します。
 int getResultSetConcurrency()
          JDBC 2.0 結果セットの並行性を取得します。
 int getResultSetType()
          JDBC 2.0 結果セットのタイプを判定します。
 int getUpdateCount()
          更新カウントとして現在の結果を返します。
 SQLWarning getWarnings()
          この Statement に関する呼び出しによって報告される最初の警告を取得します。
 void setCursorName(String name)
          後続の Statement execute メソッドによって使用される SQL カーソル名を定義します。
 void setEscapeProcessing(boolean enable)
          エスケープの処理をオンまたはオフに設定します。
 void setFetchDirection(int direction)
          JDBC 2.0 結果セットの行が処理される方向についてのヒントをドライバに提供します。
 void setFetchSize(int rows)
          JDBC 2.0 より多くの行が必要なときに、データベースから取り出す必要がある行数についてのヒントを JDBC ドライバに提供します。
 void setMaxFieldSize(int max)
          カラムの最大のバイト数の制限値を、指定されたバイト数に設定します。
 void setMaxRows(int max)
          任意の ResultSet が含むことのできる最大の行数を、指定された数に設定します。
 void setQueryTimeout(int seconds)
          ドライバが Statement の実行を待つ秒数を、指定された秒数に設定します。
 

メソッドの詳細

executeQuery

public ResultSet executeQuery(String sql)
                       throws SQLException
単一の結果を返す SQL 文を実行します。
パラメータ:
sql - これは通常、SQL SELECT 文
戻り値:
クエリーによって作成されたデータを含む ResultSet。null にはならない
例外:
SQLException - データベースアクセスエラーが発生した場合

executeUpdate

public int executeUpdate(String sql)
                  throws SQLException
SQL INSERT 文、UPDATE 文、または DELETE 文を実行します。さらに、SQL DDL 文のような何も返さない SQL 文を実行することもできます。
パラメータ:
sql - SQL INSERT 文、UPDATE 文、DELETE 文、または何も返さない SQL 文
戻り値:
INSERT、UPDATE、DELETE のどれかの場合は行数カウント。何も返さない SQL 文の場合は 0
例外:
SQLException - データベースアクセスエラーが発生した場合

close

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

注: Statement は、ガベージとして回収されるときは自動的にクローズされます。Statement がクローズされるとき、その現在の ResultSet が存在すれば、それもクローズされます。

例外:
SQLException - データベースアクセスエラーが発生した場合

getMaxFieldSize

public int getMaxFieldSize()
                    throws SQLException
任意のカラム値で許可される最大のバイト数を返します。この制限値は、任意のカラム値に対し返すことができる最大のバイト数です。この制限値は、BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR、 LONGVARCHAR の各カラムだけに適用されます。制限値を超えたデータは破棄されます。
戻り値:
現在の最大カラムサイズの制限値。ゼロは無制限を意味する
例外:
SQLException - データベースアクセスエラーが発生した場合

setMaxFieldSize

public void setMaxFieldSize(int max)
                     throws SQLException
カラムの最大のバイト数の制限値を、指定されたバイト数に設定します。これは、任意のカラム値に対して返すことのできる最大のバイト数です。この制限値は、BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR、 LONGVARCHAR の各フィールドだけに適用されます。制限値を超えたデータは破棄されます。移植性を最大限にするには、256 より大きい値を使用します。
パラメータ:
max - 新しい最大カラムサイズの制限値。ゼロは無制限を意味する
例外:
SQLException - データベースアクセスエラーが発生した場合

getMaxRows

public int getMaxRows()
               throws SQLException
ResultSet が含むことのできる最大の行数を取得します。制限値を超えた行は除外されます。
戻り値:
現在の最大行数の制限値。ゼロは無制限を意味する
例外:
SQLException - データベースアクセスエラーが発生した場合

setMaxRows

public void setMaxRows(int max)
                throws SQLException
任意の ResultSet が含むことのできる最大の行数を、指定された数に設定します。制限値を超えた行は除外されます。
パラメータ:
max - 新しい最大行数の制限値。ゼロは無制限を意味する
例外:
SQLException - データベースアクセスエラーが発生した場合

setEscapeProcessing

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

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

パラメータ:
enable - 有効にする場合は true、無効にする場合は false
例外:
SQLException - データベースアクセスエラーが発生した場合

getQueryTimeout

public int getQueryTimeout()
                    throws SQLException
ドライバが Statement の実行を待つ秒数を取得します。この時間を経過すると、SQLException がスローされます。
戻り値:
新しいクエリータイムアウトの制限値の秒数。ゼロは無制限を意味する
例外:
SQLException - データベースアクセスエラーが発生した場合

setQueryTimeout

public void setQueryTimeout(int seconds)
                     throws SQLException
ドライバが Statement の実行を待つ秒数を、指定された秒数に設定します。この時間を経過すると、SQLException がスローされます。
パラメータ:
seconds - 新しいクエリータイムアウトの制限値の秒数。ゼロは無制限を意味する
例外:
SQLException - データベースアクセスエラーが発生した場合

cancel

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

getWarnings

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

警告チェーンは、文が (再) 実行されるたびに自動的にクリアされます。

注: ResultSet を処理中の場合、ResultSet の読み込みに関連付けられた警告はすべて ResultSet オブジェクトにチェーンされます。

戻り値:
最初の SQLWarning または null
例外:
SQLException - データベースアクセスエラーが発生した場合

clearWarnings

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

setCursorName

public void setCursorName(String name)
                   throws SQLException
後続の Statement execute メソッドによって使用される SQL カーソル名を定義します。この名前は、SQL で位置決めされた更新/削除文で使用され、この文で作成された ResultSet 中の現在の行を識別できます。データベースが位置決めされた更新/削除をサポートしていない場合、このメソッドは何も実行しません。カーソルが更新をサポートする適切な遮断レベルを持つことが保証されるためには、カーソルの SELECT 文は「select for update ...」という形式である必要があります。「for update」の句が省略されている場合、位置決めされた更新は失敗します。

注: 定義により、位置決めされた更新/削除の実行は、位置決めに使用中の ResultSet を生成した Statement とは異なる Statement によって実行されなければなりません。さらに、カーソル名は接続の中で一意でなければなりません。

パラメータ:
name - 新しいカーソル名。接続の中で一意でなければならない
例外:
SQLException - データベースアクセスエラーが発生した場合

execute

public boolean execute(String sql)
                throws SQLException
複数の結果を返す可能性のある SQL 文を実行します。いくつかの (普通でない) 状況の下では、単一の SQL 文が複数の結果の集合あるいは更新カウントを返すことがあります。複数の結果を返すことがあることを知っているストアドプロシージャを使用中、または未知の SQL 文字列を動的に実行中でない限り、通常はこれを無視できます。executegetMoreResultsgetResultSet、および getUpdateCount メソッドによって複数の結果をナビゲートできます。

execute メソッドは、SQL 文を実行し最初の結果のフォームを示します。次いで、getResultSet または getUpdateCount を使用して結果を取得します。そして、getMoreResults により引き続き任意の結果の取得に移動します。

パラメータ:
sql - 任意の SQL 文
戻り値:
次の結果が ResultSet の場合は true。更新カウントであったり結果がまったくない場合は false
例外:
SQLException - データベースアクセスエラーが発生した場合
関連項目:
getResultSet(), getUpdateCount(), getMoreResults()

getResultSet

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

getUpdateCount

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

getMoreResults

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

(!getMoreResults() && (getUpdateCount() == -1) の場合は、結果はそれ以上ありません。

戻り値:
次の結果が ResultSet の場合は true。更新カウントであるか、または結果がない場合は false
例外:
SQLException - データベースアクセスエラーが発生した場合
関連項目:
execute(java.lang.String)

setFetchDirection

public void setFetchDirection(int direction)
                       throws SQLException
JDBC 2.0

結果セットの行が処理される方向についてのヒントをドライバに提供します。ヒントは、この Statement オブジェクトを使用して作成された結果セットにだけ適用されます。既定値は ResultSet.FETCH_FORWARD です。

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

パラメータ:
direction - 行を処理する初期方向
例外:
SQLException - データベースアクセスエラーが発生した場合、または指定された方向が ResultSet.FETCH_FORWARD、ResultSet.FETCH_REVERSE、または ResultSet.FETCH_UNKNOWN のどれでもない場合

getFetchDirection

public int getFetchDirection()
                      throws SQLException
JDBC 2.0

この Statement オブジェクトから生成された結果セットのデフォルトである、データベーステーブルから行をフェッチする方向を取得します。この Statement オブジェクトが setFetchDirection メソッドを呼び出してフェッチ方向を設定していない場合、戻り値は実装に依存します。

戻り値:
この Statement オブジェクトから生成された結果セットのデフォルトのフェッチ方向
例外:
SQLException - データベースアクセスエラーが発生した場合

setFetchSize

public void setFetchSize(int rows)
                  throws SQLException
JDBC 2.0

より多くの行が必要なときに、データベースから取り出す必要がある行数についてのヒントを JDBC ドライバに提供します。指定された行数は、この Statement を使って作成された結果セットにだけ影響します。指定された値が 0 の場合、ヒントは無視されます。既定値は 0 です。

パラメータ:
rows - 取り出す行数
例外:
SQLException - データベースアクセスエラーが発生した場合、または条件 0 <= rows <= this.getMaxRows() が満たされない場合

getFetchSize

public int getFetchSize()
                 throws SQLException
JDBC 2.0

この Statement オブジェクトから生成された結果セットのデフォルトのフェッチサイズである、結果セットの行数を取得します。この Statement オブジェクトが setFetchSize メソッドを呼び出してフェッチサイズを設定していない場合、戻り値は実装に依存します。

戻り値:
この Statement オブジェクトから生成された結果セットのデフォルトのフェッチサイズ
例外:
SQLException - データベースアクセスエラーが発生した場合

getResultSetConcurrency

public int getResultSetConcurrency()
                            throws SQLException
JDBC 2.0

結果セットの並行性を取得します。


getResultSetType

public int getResultSetType()
                     throws SQLException
JDBC 2.0

結果セットのタイプを判定します。


addBatch

public void addBatch(String sql)
              throws SQLException
JDBC 2.0

Statement の現在のコマンドのバッチに SQL コマンドを追加します。このメソッドはオプションです。

パラメータ:
sql - 通常は、静的 SQL INSERT または UPDATE 文
例外:
SQLException - データベースアクセスエラーが発生した場合、またはドライバがバッチ文をサポートしていない場合

clearBatch

public void clearBatch()
                throws SQLException
JDBC 2.0

現在のバッチのコマンドのセットを空にします。このメソッドはオプションです。

例外:
SQLException - データベースアクセスエラーが発生した場合、またはドライバがバッチ文をサポートしていない場合

executeBatch

public int[] executeBatch()
                   throws SQLException
JDBC 2.0

コマンドのバッチをデータベースに送信して実行します。このメソッドはオプションです。

戻り値:
バッチ内のコマンドごとに 1 つの要素が格納されている更新カウントの配列。配列はコマンドがバッチに挿入された順序で並べられる
例外:
SQLException - データベースアクセスエラーが発生した場合、またはドライバがバッチ文をサポートしていない場合

getConnection

public Connection getConnection()
                         throws SQLException
JDBC 2.0

この Statement オブジェクトを生成した Connection オブジェクトを返します。

戻り値:
この文を生成した接続
例外:
SQLException - データベースアクセスエラーが発生した場合

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.