|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
静的 SQL 文を実行し、作成された結果を得るために使用されるオブジェクトです。
Statement オブジェクトごとに 1 つの ResultSet だけがいつでもオープンできます。したがって、1 つの ResultSet オブジェクトの読み込みが、別の読み込みにより割り込まれると、各々は異なった Statement オブジェクトによって生成されたことになります。すべての文の execute メソッドは、文の現在の ResultSet オブジェクトでオープンされているものが存在すれば、それを暗黙にクローズします。
Connection.createStatement(),
ResultSet| メソッドの概要 | |
void |
addBatch(String sql)
この Statement オブジェクトの現在のコマンドのバッチに SQL コマンドを追加します。 |
void |
cancel()
DBMS およびドライバの両方が SQL 文の終了をサポートする場合に、この Statement オブジェクトを取り消します。 |
void |
clearBatch()
現在のバッチのコマンドのセットを空にします。 |
void |
clearWarnings()
この Statement オブジェクトに関して報告されたすべての警告をクリアします。 |
void |
close()
自動的にクローズされるときに Statement オブジェクトのデータベースと JDBC リソースが解放されるのを待つのではなく、ただちにそれらを解放します。 |
boolean |
execute(String sql)
複数の結果を返す可能性のある SQL 文を実行します。 |
int[] |
executeBatch()
コマンドのバッチをデータベースに送信して実行し、すべてのコマンドが正常に実行されると、更新カウントの配列を返します。 |
ResultSet |
executeQuery(String sql)
単一の ResultSet オブジェクトを返す SQL 文を実行します。 |
int |
executeUpdate(String sql)
SQL INSERT 文、UPDATE 文、または DELETE 文を実行します。 |
Connection |
getConnection()
この Statement オブジェクトを生成した Connection オブジェクトを返します。 |
int |
getFetchDirection()
この Statement オブジェクトから生成された結果セットのデフォルトである、データベーステーブルから行をフェッチする方向を取得します。 |
int |
getFetchSize()
この Statement オブジェクトから生成された結果セットのデフォルトのフェッチサイズである、結果セットの行数を取得します。 |
int |
getMaxFieldSize()
任意の列値で許可される最大バイト数を返します。 |
int |
getMaxRows()
ResultSet オブジェクトが含むことのできる最大の行数を取得します。 |
boolean |
getMoreResults()
Statement オブジェクトの次の結果に移動します。 |
int |
getQueryTimeout()
ドライバが Statement オブジェクトの実行を待つ秒数を取得します。 |
ResultSet |
getResultSet()
ResultSet オブジェクトとして現在の結果を返します。 |
int |
getResultSetConcurrency()
この Statement オブジェクトから生成された ResultSet オブジェクトの結果セットの並行性を取得します。 |
int |
getResultSetType()
この Statement オブジェクトから生成された ResultSet オブジェクトの結果セットのタイプを取得します。 |
int |
getUpdateCount()
更新カウントとして現在の結果を返します。 |
SQLWarning |
getWarnings()
この Statement オブジェクトに関する呼び出しによって報告される最初の警告を取得します。 |
void |
setCursorName(String name)
後続の Statement オブジェクトの execute メソッドによって使用される SQL カーソル名を定義します。 |
void |
setEscapeProcessing(boolean enable)
エスケープの処理をオンまたはオフに設定します。 |
void |
setFetchDirection(int direction)
結果セットの行が処理される方向についてのヒントをドライバに提供します。 |
void |
setFetchSize(int rows)
より多くの行が必要なときに、データベースから取り出す必要がある行数についてのヒントを JDBC ドライバに提供します。 |
void |
setMaxFieldSize(int max)
列の最大バイト数の制限値を、指定されたバイト数に設定します。 |
void |
setMaxRows(int max)
任意の ResultSet オブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。 |
void |
setQueryTimeout(int seconds)
ドライバが Statement オブジェクトの実行を待つ秒数を、指定された秒数に設定します。 |
| メソッドの詳細 |
public ResultSet executeQuery(String sql)
throws SQLException
ResultSet オブジェクトを返す SQL 文を実行します。sql - 通常静的 SQL SELECT 文ResultSet オブジェクト。null にはならないSQLException - データベースアクセスエラーが発生した場合
public int executeUpdate(String sql)
throws SQLException
INSERT 文、UPDATE 文、または DELETE 文を実行します。さらに、SQL DDL 文のような何も返さない SQL 文も実行できます。sql - SQL INSERT 文、UPDATE 文、または DELETE 文、あるいは何も返さない SQL 文INSERT 文、UPDATE 文、DELETE 文の場合は行数。何も返さない SQL 文の場合は 0SQLException - データベースアクセスエラーが発生した場合
public void close()
throws SQLException
Statement オブジェクトのデータベースと JDBC リソースが解放されるのを待つのではなく、ただちにそれらを解放します。データベースのリソースを占有するのを避けるために、通常は、作業が終了したらすぐにリソースを解放するようにしてください。
注: Statement オブジェクトは、ガベージコレクトされるときは自動的にクローズされます。Statement オブジェクトがクローズされるとき、その現在の ResultSet オブジェクトが存在すれば、それもクローズされます。
SQLException - データベースアクセスエラーが発生した場合
public int getMaxFieldSize()
throws SQLException
BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR、および LONGVARCHAR の各列にだけ適用されます。制限値を超えたデータは通知なしに破棄されます。SQLException - データベースアクセスエラーが発生した場合
public void setMaxFieldSize(int max)
throws SQLException
BINARY、VARBINARY、LONGVARBINARY、CHAR、VARCHAR、LONGVARCHAR の各フィールドだけに適用されます。制限値を超えたデータは通知なしに破棄されます。移植性を最大限にするには、256 より大きい値を使用します。max - 新しい最大列サイズの制限値。ゼロは無制限を意味するSQLException - データベースアクセスエラーが発生した場合
public int getMaxRows()
throws SQLException
ResultSet オブジェクトが含むことのできる最大の行数を取得します。制限値を超えた行は通知なしに除外されます。SQLException - データベースアクセスエラーが発生した場合
public void setMaxRows(int max)
throws SQLException
ResultSet オブジェクトが含むことのできる最大行数の制限値を、指定された数に設定します。制限値を超えた行は通知なしに除外されます。max - 新しい最大行数の制限値。ゼロは無制限を意味するSQLException - データベースアクセスエラーが発生した場合
public void setEscapeProcessing(boolean enable)
throws SQLException
enable - 有効にする場合は true、無効にする場合は falseSQLException - データベースアクセスエラーが発生した場合
public int getQueryTimeout()
throws SQLException
Statement オブジェクトの実行を待つ秒数を取得します。この時間を経過すると、SQLException がスローされます。SQLException - データベースアクセスエラーが発生した場合
public void setQueryTimeout(int seconds)
throws SQLException
Statement オブジェクトの実行を待つ秒数を、指定された秒数に設定します。この時間を経過すると、SQLException がスローされます。seconds - 新しいクエリータイムアウトの制限値の秒数。ゼロは無制限を意味するSQLException - データベースアクセスエラーが発生した場合
public void cancel()
throws SQLException
Statement オブジェクトを取り消します。このメソッドは、1 つのスレッドが別のスレッドによって実行中の文を取り消すのに使用できます。SQLException - データベースアクセスエラーが発生した場合
public SQLWarning getWarnings()
throws SQLException
Statement オブジェクトに関する呼び出しによって報告される最初の警告を取得します。後続の Statement オブジェクトの警告は、この SQLWarning オブジェクトにチェーンされます。
警告チェーンは、文が (再) 実行されるたびに自動的にクリアされます。
注: ResultSet オブジェクトを処理中の場合、ResultSet オブジェクトの読み込みに関連する警告はすべてそのオブジェクトにチェーンされます。
SQLWarning オブジェクトまたは nullSQLException - データベースアクセスエラーが発生した場合
public void clearWarnings()
throws SQLException
Statement オブジェクトに関して報告されたすべての警告をクリアします。このメソッドの呼び出しのあと、この Statement オブジェクトに対する新しい警告が通知されるまで、getWarnings メソッドは null を返します。SQLException - データベースアクセスエラーが発生した場合
public void setCursorName(String name)
throws SQLException
Statement オブジェクトの execute メソッドによって使用される SQL カーソル名を定義します。この名前は、SQL で位置決めされた更新文または削除文で使用され、この文で生成された ResultSet オブジェクト内の現在の行を識別できます。データベースが位置決めされた更新または削除をサポートしていない場合、このメソッドは何も実行しません。カーソルが更新をサポートする適切な遮断レベルを持つことが保証されるためには、カーソルの SELECT 文は「select for update ...」という形式である必要があります。「for update」の句が省略されている場合、位置決めされた更新は失敗します。
注: 定義により、位置決めされた更新または削除の実行は、位置決めに使用中の ResultSet オブジェクトを生成した Statement オブジェクトとは異なる Statement オブジェクトによって実行される必要があります。さらに、カーソル名は接続内で一意にする必要があります。
name - 新しいカーソル名。接続内で一意にする必要があるSQLException - データベースアクセスエラーが発生した場合
public boolean execute(String sql)
throws SQLException
execute、getMoreResults、getResultSet、および getUpdateCount メソッドによって複数の結果をナビゲートできます。
execute メソッドは、SQL 文を実行し最初の結果の形式を示します。次に、getResultSet または getUpdateCount メソッドを使用して結果を取得します。そして、getMoreResults により引き続き任意の結果の取得 (複数可) に移動します。sql - 任意の SQL 文ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は falseSQLException - データベースアクセスエラーが発生した場合getResultSet(),
getUpdateCount(),
getMoreResults()
public ResultSet getResultSet()
throws SQLException
ResultSet オブジェクトとして現在の結果を返します。このメソッドは、1 つの結果につき 1 回だけ呼び出さなければなりません。ResultSet オブジェクトとしての現在の結果。更新カウントであるか、または結果がない場合は nullSQLException - データベースアクセスエラーが発生した場合execute(java.lang.String)
public int getUpdateCount()
throws SQLException
ResultSet オブジェクトであるか、または結果がない場合は -1 を返します。このメソッドは、1 つの結果につき 1 回だけ呼び出す必要があります。ResultSet オブジェクトであるか、または結果がない場合は -1SQLException - データベースアクセスエラーが発生した場合execute(java.lang.String)
public boolean getMoreResults()
throws SQLException
Statement オブジェクトの次の結果に移動します。この結果が ResultSet オブジェクトの場合は true を返します。このメソッドは、getResultSet メソッドで得られた現在の ResultSet オブジェクトをすべて暗黙にクローズします。
次に該当する場合、結果はありません。
(!getMoreResults() && (getUpdateCount() == -1)
ResultSet オブジェクトの場合は true。更新カウントであるか、または結果がない場合は falseSQLException - データベースアクセスエラーが発生した場合execute(java.lang.String)
public void setFetchDirection(int direction)
throws SQLException
Statement オブジェクトを使用して作成された結果セットにだけ適用されます。デフォルト値は ResultSet.FETCH_FORWARD です。
このメソッドは、この Statement オブジェクトによって生成される結果セットのデフォルトのフェッチ方向を設定します。各結果セットは、それ自身のフェッチ方向を取得および設定するための独自のメソッドを持ちます。
direction - 行を処理する初期方向SQLException - データベースアクセスエラーが発生した場合、または指定された方向が ResultSet.FETCH_FORWARD、ResultSet.FETCH_REVERSE、または ResultSet.FETCH_UNKNOWN のどれでもない場合
public int getFetchDirection()
throws SQLException
Statement オブジェクトから生成された結果セットのデフォルトである、データベーステーブルから行をフェッチする方向を取得します。この Statement オブジェクトが setFetchDirection メソッドを呼び出してフェッチ方向を設定していない場合、戻り値は実装に依存します。Statement オブジェクトから生成された結果セットのデフォルトのフェッチ方向SQLException - データベースアクセスエラーが発生した場合
public void setFetchSize(int rows)
throws SQLException
rows - フェッチする行数SQLException - データベースアクセスエラーが発生した場合、または条件 0 <= rows <= this.getMaxRows() が満たされない場合
public int getFetchSize()
throws SQLException
Statement オブジェクトから生成された結果セットのデフォルトのフェッチサイズである、結果セットの行数を取得します。この Statement オブジェクトが setFetchSize メソッドを呼び出してフェッチサイズを設定していない場合、戻り値は実装に依存します。Statement オブジェクトから生成された結果セットのデフォルトのフェッチサイズSQLException - データベースアクセスエラーが発生した場合
public int getResultSetConcurrency()
throws SQLException
Statement オブジェクトから生成された ResultSet オブジェクトの結果セットの並行性を取得します。ResultSet.CONCUR_READ_ONLY または ResultSet.CONCUR_UPDATABLE
public int getResultSetType()
throws SQLException
Statement オブジェクトから生成された ResultSet オブジェクトの結果セットのタイプを取得します。ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE、または ResultSet.TYPE_SCROLL_SENSITIVE のうちの 1 つ
public void addBatch(String sql)
throws SQLException
Statement オブジェクトの現在のコマンドのバッチに SQL コマンドを追加します。このメソッドはオプションです。sql - 通常静的 SQL INSERT 文、または UPDATE 文SQLException - データベースアクセスエラーが発生した場合、またはドライバがバッチ文をサポートしていない場合
public void clearBatch()
throws SQLException
SQLException - データベースアクセスエラーが発生した場合、またはドライバがバッチ文をサポートしていない場合
public int[] executeBatch()
throws SQLException
int 要素は、バッチ内のコマンドに対応して返され順序付けられます。つまり、バッチに追加された順序に従って順序付けられます。メソッド executeBatch によって返される配列内の要素は、次のどれか 1 つに該当します。
-2 の値 -- コマンドが正常に処理されたが、影響を受けた行数が不明なことを示す
バッチ更新内のコマンドの 1 つが正常に実行できなかった場合、このメソッドは BatchUpdateException をスローし、JDBC ドライバはバッチ内の残りのコマンドの処理を継続することも、中止することもできます。ただし、ドライバの動作は特定の DBMS と一貫性を保つ必要があり、常にコマンドの処理を継続するか、あるいは継続しないかのどちらかになります。失敗後、ドライバが処理を継続する場合は、BatchUpdateException.getUpdateCounts メソッドで返される配列には、バッチ内のコマンドと同じ数の要素が格納され、それらの要素の 1 つ以上が次に該当します。
-3 の値 -- 失敗したコマンドが正常に実行されたことを示し、コマンドが失敗したあとに、ドライバがコマンドの処理を継続した場合に限り発生する
ドライバはこのメソッドを実装する必要はありません。Java 2 SDK, Standard Edition バージョン 1.3 では、使用できる実装および戻り値が修正されて、BatchUpdateException オブジェクトがスローされたあとにバッチ更新内のコマンドの処理を継続できるオプションが用意されています。
SQLException - データベースアクセスエラーが発生した場合、またはドライバがバッチ文をサポートしない場合。データベースに送信されたコマンドの 1 つが正常に実行されなかった場合や、結果セットを返そうとすると BatchUpdateException (SQLException のサブクラス) がスローされる
public Connection getConnection()
throws SQLException
Statement オブジェクトを生成した Connection オブジェクトを返します。SQLException - データベースアクセスエラーが発生した場合
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.