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と関連する良く見られている質問

QSystem.err. printlnとSystem.out.printlnはどう違うんでしょうか?

 初心者なので今までSystem.out.println文しか見たことがなかったのですが、テキストで急にIOExceptionのcatch文の中にSystem.err. println文が出てきました。
 errをoutに書き換えてもエクリプスではチェックされなかったのですが、どういう違いがあるのでしょうか?

Aベストアンサー

出力先が「標準出力」か「標準エラー出力」かの違いです。

Windows環境ですと、
標準出力はコンソール(コマンドプロンプト、もしくはDOS窓のこと)に出力されます。
標準エラー出力も同じくコンソールに出ます。

ただし、リダイレクト機能を使ったときに違いが表れます。
リダイレクトとは、
>program > a.txt
のように、標準出力をするプログラムの出力を、
テキストファイルに書き出すことです。
Javaでも、コンソールへのテキスト出力をするプログラムだったら、
>java nantoka > a.txt
で、a.txtにテキストが書き込まれると思います。
試してみてください。

それで、「標準エラー出力」の方は、
リダイレクトをしてもリダイレクトされず、
コンソールにテキストが書き出されます。
標準エラー出力は、通常、エラーが起こったときの
表示に使うもので、
これまでリダイレクトされてしまうと、
ユーザーがエラーを検知できなくなるからです。

ためしに
System.out.println("ABCD");
System.err.println("いろはに");
System.out.println("EFG");
System.err.println("ほへと");
と出力するtestプログラムを作って、

>java test

>java test > a.txt
として、動作の違いをたしかめてみてください。

(付記:どうしてもエラー出力をリダイレクトしたい場合、
>のかわりに2>を使うことによって可能です。
Linux系ではシェルによって違いがあります)

出力先が「標準出力」か「標準エラー出力」かの違いです。

Windows環境ですと、
標準出力はコンソール(コマンドプロンプト、もしくはDOS窓のこと)に出力されます。
標準エラー出力も同じくコンソールに出ます。

ただし、リダイレクト機能を使ったときに違いが表れます。
リダイレクトとは、
>program > a.txt
のように、標準出力をするプログラムの出力を、
テキストファイルに書き出すことです。
Javaでも、コンソールへのテキスト出力をするプログラムだったら、
>java nantoka > a.txt
で、a.tx...続きを読む

QSystem.out.printlnの出力先

System.out.printlnはデフォルトでコンソール出力になっていますが、ファイルなどへ出力先を変更することはできますか?

Aベストアンサー

System.outは「標準」出力を示すオブジェクトです。
デフォルトではコンソールになっています。
そこで、この「標準」を変更するために
System#setOut(PrintStream out)
が用意されています。

PrintStream ps=new PrintStream("hoge.txt");
System.setOut(ps);
System.out.println("Hello");
ps.close();

などとすればファイルに出力されます。

Aベストアンサー

LN=LINE

lineの略ではないでしょうか
begin a new line (行を改める)で
改行ではないかと

QSystem.out.println(new 文)て?

javaを勉強しています。カレンダーを作ろうと思い、以下のURLのカレンダーのコードを勉強していたのですが、タイトルのSystem.out.println(new文)の意味が分かりません。
下記のコードで言うと、;のつく文では一番下の文です。
よろしくお願いします。

http://www7a.biglobe.ne.jp/~java-master/samples/datetime/MonthlyCalendar.html

Aベストアンサー

>System.out.println(new文)の意味が分かりません。
System.out.println( (new MonthlyCalendar(currentYear, month)).toString() );
という意味。マニュアルくらい読もうぜ。

QSystem.out.printlnの意味がよくわかりません。

System.out.printlnの意味がよくわかりません。

色々と参考書などを読むと、「Systemのフィールド変数outは、PrintStreamクラスのインスタンスを参照している。」との記述がありました。
ならばと、直接io パッケージからPrintStream 、outを呼び出すため、
“java.io.PrintStream.out. println();”と書きましたが、「outが不可視です」とのエラーが出ます。
このコマンドのどこが間違っているのでしょうか。

また、何故、Systemから、他のパッケージにあるメソッドを呼び出すのでしょうか。
わざわざSystemから、ioパッケージにあるout 、println() を呼び出す必要があるのでしょうか。
他の呼び出し方はないのでしょうか。;

Aベストアンサー

あなたは「フィールド」「インスタンス」「パッケージ」「メソッド」などをどのように認識しているのでしょうか? そして, 「オブジェクト指向」についてどの程度わかっているのでしょうか?
なんとなく曖昧になっているような気がします. まあ, 私自身も「オブジェクト指向とは何か」と聞かれると答えに困るわけですが....


このカテゴリの人気Q&Aランキング

おすすめ情報