- PR -

コネクションプールについて

1
投稿者投稿内容
takasaki
常連さん
会議室デビュー日: 2002/02/14
投稿数: 31
投稿日時: 2002-10-04 10:48
こんにちは

http://www.atmarkit.co.jp/fjava/rensai/jsp2_04/jsp2_04_3.html

で紹介されているコネクションプールクラスを使っているのですが、
MyDBAccessの33行目でstatement.close(); としていますが、
closeしてしまうとResultsetが取得できないのでこの部分をコメントアウトしました。

そこで疑問なのですが、このstatementはどのタイミングでcloseされるのでしょうか?


下記の手順を踏んでいるのですがDBは正しく更新されているのですが、再表示したbeanは
最初に取得したときの状態になっています。

1.getResultSet()で取得したResultsetをbeanに取得
2.beanをsessionに取得
3.beanをフォームのinput type="text"に出力
4.フォーム上で値を書き換える
5.request値をbeanに取得
6.取得した値をexecuteBatchで更新、commitする
7.session.removeAttribute()する
8.再表示(1にもどる)

ご教授いただけないでしょうか?

動作環境
webサーバ win2000 jdk1.4 tomcat4.0.3
dbサーバ SunOS5.8 oracle8



takasaki
常連さん
会議室デビュー日: 2002/02/14
投稿数: 31
投稿日時: 2002-10-04 16:19
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2230&forum=12&3
に同じような質問を見つけました。

型まで意識したテーブルを作るのは難しかったので

private Statement statement;
public void closeStatement() throws Exception {
    statement.close();
}

として、呼び出し元から明示的にstatementをcloseしてやることにしました。

>beanは最初に取得したときの状態になっています。
と書いたのですが、これはbeanを取得しているcommandクラスを
servletのinitイベントで初期化してたのですが、serviceイベントで
初期化したら解決しました。



[ メッセージ編集済み 編集者: takasaki 編集日時 2002-10-09 19:36 ]
1

スキルアップ/キャリアアップ(JOB@IT)