|
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
、無効にする場合は false
SQLException
- データベースアクセスエラーが発生した場合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
オブジェクトまたは null
SQLException
- データベースアクセスエラーが発生した場合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
。更新カウントであるか、または結果がない場合は false
SQLException
- データベースアクセスエラーが発生した場合getResultSet()
,
getUpdateCount()
,
getMoreResults()
public ResultSet getResultSet() throws SQLException
ResultSet
オブジェクトとして現在の結果を返します。このメソッドは、1 つの結果につき 1 回だけ呼び出さなければなりません。ResultSet
オブジェクトとしての現在の結果。更新カウントであるか、または結果がない場合は null
SQLException
- データベースアクセスエラーが発生した場合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
。更新カウントであるか、または結果がない場合は false
SQLException
- データベースアクセスエラーが発生した場合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.