目次 | 前の項目 | 次の項目 | JDBCTM ガイド: 使用の開始 |
Connection.isClosed()
メソッドが保証しているのは、Connection.closed()
が呼び出されたあとでは真が返るということだけです。一般に、Connection.isClosed()
を呼び出して、データベース接続が有効か無効かを判定することはできません。通常、クライアントでは、操作が試みられたときにスローされる例外をキャッチすることで、接続が無効になっていることを判断できます。
Statement.setCursorName()
メソッドを使うと、SQL 文で生成される次の結果セットで使われるカーソルのカーソル名を、アプリケーションで指定できます。結果セットのカーソル名は、ResultSet.getCursorName()
を呼び出して取得できます。結果セットを生成する前に Statement.setCursorName()
を呼び出した場合、ResultSet.getCursorName()
からは Statement.setCursorName()
で指定した値が常に返ります。 結果セットを作成する前に Statement.setCursorName()
メソッドを呼び出しても、結果セットは更新可能になりません。 つまり、Statement.setCursorName()
を呼び出してあっても、結果セットで位置決めされた更新または削除を行うことはできません。デフォルトでは、結果セットは読み取り専用です。
カーソル名を使う場合は、必ず次のように SQL 文の中に埋め込みます。
UPDATE ...WHERE CURRENT OF <cursor>
カーソル名を使うと、位置決めされた更新または位置決めされた削除を行うことができます。位置決めされた更新および削除を結果セットで有効にするには、次の形式の選択クエリーを使って結果セットを生成する必要があります。
SELECT FOR UPDATE
... FROM ... WHERE ...
Statement.setCursorName()
メソッドを呼び出してカーソル名を指定していない場合は、SELECT FOR UPDATE
文が実行されるときに、JDBC ドライバまたは背後の DBMS がカーソル名を生成します。 ただし、この処理が行われるのは、位置決めされた更新または削除がサポートされている場合だけです。結果セットが読み取り専用で、Statement.setCursorName()
によるカーソル名の指定が行われていない場合は、ResultSet.getCursorName()
から NULL
が返ります。
ResultSet
オブジェクトでは、順方向スクロールだけが可能です。DatabaseMetaData
操作で生成される結果セットには、スクロール機能はありません。