2017-04-09 34 views
0

データベース(Oracle 10g)に関する1つの問題があります。私はJSP ServletでWebアプリケーションを開発しました。今私はそれをテストしています。まず、問題が発生しました(「ORA-01000:最大オープンカーソルを超えました」)。問題を解決するために、データベース接続が確立されているすべてのファイル(例:Foo.javaとFoo.jsp)のすべての接続を閉じました。このため、私は次のコードを使用しました:データベース接続を解決するにはどうすればよいですか?

finally { 
    if(rs1 != null) { 
     try { 
      rs1.close(); 
     } catch (SQLException e) { /* ignored */ } 
     if(ps2 != null) { 
      try { 
       ps2.close(); 
      } catch (SQLException e) { /* ignored */ } 
     } 
     if(con != null) { 
      try { 
       con.close(); 
      } catch (SQLException e) { /* ignored */ } 
     } 
    } 

しかし、コードでは別の問題があります。アプリケーションはデータベースからレコードをフェッチしません。

私がリンクをクリックすると初めて(メニューを追加しますが、それはすべてのデータを示しているが、私はクリックしたときに、他のすべてのレコードが消えているリンク。後にこのようなその後

image 1:

image 2:

と表示エラーjava.sql.SQLException: Closed Connection

+0

カラムヘッダーから 's 'を削除してください。それはひどい文法です。 –

答えて

0

may be yメソッドの外側に接続オブジェクトを定義しました。接続オブジェクトを使用して初めてデータベースに接続しました。リンクを再度クリックすると、同じメソッドが呼び出され、接続オブジェクトはすでに閉じられています。データベースに再び接続していないため、クローズされた接続例外が発生します。

まず、メソッド内に接続またはプリペアドステートメントまたはステートメントを作成し、結果セットをフェッチします。メソッドが呼び出されると、接続オブジェクトは接続プールの助けを借りて再度作成され、データに正常に接続できますベース。

+0

高...私は場所が問題を発見しました。実際は問題はMyConnection.javaの中にあります。ここでは静的なメソッドを作成しましたが、私のメソッド(public Connection connectMe())とその動作からstaticキーワードを削除しました...... –

関連する問題