Oracle Database 2日でJava開発者ガイド 11g リリース1(11.1) E05692-02 |
|
JDeveloperでのデータベースからの切断は簡単な操作ですが、Javaアプリケーションでは単独のプロセスではありません。アプリケーションでは、ResultSet
、Statement
およびConnection
オブジェクトを使用した後、それらをすべて明示的にクローズする必要があります。Connection
オブジェクトをクローズすると、データベースから切断されます。close
メソッドによって、メモリーがクリーンアップされ、データベース・カーソルが解放されます。そのため、ResultSet
およびStatement
オブジェクトを明示的にクローズしないと、重大なメモリー・リークが発生する場合があり、データベース内のカーソルを使い果たすことがあります。その後、接続をクローズする必要があります。
この章は次の項で構成されています。
次の手順では、closeAll
メソッドをDataHandler
クラスに追加します。
DataHandler.java
をダブルクリックして、Javaソース・エディタで開きます。
DataHandler
クラスの最後で、次のようにcloseAll
メソッドを宣言します。
public void closeAll() { }
ResultSet
オブジェクトがオープンしているかどうかを確認します。
if ( rset != null ) {
try { rset.close(); } catch ( Exception ex ) {} rset = null; }
Statement
オブジェクトに同じ操作を繰り返します。
if ( stmt != null ) { try { stmt.close(); } catch ( Exception ex ) {} stmt = null; }
Connection
オブジェクトをクローズします。
if ( conn != null ) { try { conn.close(); } catch ( Exception ex ) {} conn = null; }
ResultSet
、Statement
およびConnection
オブジェクトは、使い終わった後クローズする必要があります。DataHandler
クラスでは、挿入、更新および削除メソッドでは、戻る前にこれらのオブジェクトをクローズする必要があります。問合せメソッドでは、employees.jsp
ページが問合せによって返された行の処理を終了するまで、これらのオブジェクトをクローズできないことに注意してください。
次の手順では、DataHandler.java
ファイルでcloseAll
メソッドへの適切なコールを追加します。
DataHandler.java
を開きます。
addEmployee
メソッドの最後で、catch
ブロックの閉じカッコの後に、finally
ブロックでのcloseAll
メソッドへのコールを追加します。
finally { closeAll(); }
addEmployeeSP
、deleteEmployeeById
、findEmployeeById
、updateEmployee
およびauthenticateUser
メソッドに追加します。
employees.jsp
ファイルを開きます。Employees
表内のスクリプトレットを検索し、ダブルクリックして「スクリプトレットの挿入」ダイアログ・ボックスを開きます。
while
ループの後に追加します。
empsbean.closeAll();
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|