JDBCを使ってDBを扱います。

データベースはPostgresqlです。

Servlet+JSP+Beanで開発しているのですが、
以下のようなinsert処理をBeanで行っています。

String sql_insert = "INSERT INTO tal_ks(cd,kbn)"
+ " VALUES(" + vl1 + ",'" + vl2 + "')";System.out.println(sql_insert);
System.out.println("SQL文発行");
int in = stmt.executeUpdate(sql_insert);
System.out.println("(SQL文発行後");



これを行うと、例外処理には流れず
実行したかのように見えるんですが、
実際はデータがはいっておりません。

このSQLと同じものをpsqlで直接実行すると
insert できました。

これは、どういうことが原因なのでしょうか?
教えていただきたいです。

A 回答 (3件)

commit,rollbackがみあたりませんが、AutoCommitがtrueという前提でしょうか?


明示的にcommitをいれてみてはどうですか?

この回答への補足

同様でした。。。

補足日時:2001/08/10 21:05
    • good
    • 0
この回答へのお礼

すみません。
Commitの処理を加えるといけました。
(Commitの位置が悪かったみたいです)

しかし、アプレットのときは、
CommitなしでもINSERTできたのに、
Servletでの開発ではできないのは、どうして
なんでしょうか??
(同じDBを用いております)

とにかくありがとうございました。

お礼日時:2001/08/14 14:16

的外れな意見ならごめんなさい。


ConnectionやStatementのclose()漏れっていうことはないんですよね?

この回答への補足

ありがとうございます。

ちなみにStatementは、いちいち
クローズしていくのがいいのでしょうか?

補足日時:2001/08/14 14:12
    • good
    • 0

さっぱり分かりませんが、


psqlとはなんですか?
stmt は java.sql.PreparedStatement ですか?
それとも別のもの(サードパーティ提供等)ですか?
in は何で帰ってきましたか?
データベース側のログにはなにもかかれていないのですか?

この回答への補足

すみません。説明不足です。。
データベースを直接同じSQLでinsertすると
追加されたという意味です。

はい。stmtはそのStatementのことです。
inは1でかえってます。
0がエラーですよね?

JBuilderで開発してるのですが、
メッセージウィンドウには、正常なものしか
でてないのです。

補足日時:2001/08/10 20:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング