1

ログインページでOracleに接続するJSPアプリケーションがあります。この接続を維持し、別のページでそれからクエリを実行するにはどうすればよいですか?

DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@" + HOST + ":1521:fcprod", request.getParameter("username"), request.getParameter("password"));
4

3 に答える 3

1

接続プールを行うc3p0を使用して接続を維持します。使用していないときに接続を維持するコマンドがあります。私はこれを grails アプリ (jsp に似ています) と休止状態ベースのアプリケーションで使用します。

上記のコメントは正しいですが、接続情報をページからコントローラー (良いアイデアではありません) またはサービス (おそらく最良のアイデア) に移動する必要があります。

于 2012-06-21T21:56:30.333 に答える
0

それは間違いなく行く方法ではありません。私が見ているように、あなたは自分の足を撃とうとしているので、別の解決策を実装してみてください。

プールされた接続をサポートするアプリケーションサーバーを使用している場合は、それを利用してみてください。そうでない場合は、別々のリクエストで接続を開いたり閉じたりしてみてください。開いているセッション中にデータベースへの開いた接続を維持したい場合は、セッションの数が増えるにつれてすべてのリソースをすばやく消去します。アプリケーションの存続期間中、単一の接続を開いたままにしようとすると、さらに悪いことになります。

于 2012-06-21T22:29:54.653 に答える
0

そのようなシナリオを持つことは良い習慣ではありません。ただし、session.setAttribute( "con"、con);を使用して、このconオブジェクトをセッションスコープに格納できます。必要なページで、Connection con =(Connection)session.getAttribute( "con");を使用します。

于 2012-06-22T09:11:05.320 に答える