プロが教えるわが家の防犯対策術!

こんばんわ。
いつもお世話になっております。

Insertの構文が分からず悩んでいます。
ご教授頂きたいと思います。

テーブルAはID,SOLD,NAMEの項目なのですが
このテーブルAにSOLDに「1」をNAMEはテーブルAの検索結果をそのままInsertしたいのですが、以外に調べても載っておらず
困っています。

stmt.setString(2,1);
stmt.setString(3,"NAME");

stmt.executeUpdate("INSERT INTO A values ('',?,?) WHERE id= "+Str);IDはオートナンバー型なのでテーブルの通番に従いたいと思います。
上記、記述でコンパイルするとエラーが出ます。

おかしい点をご教授下さい。
お願い致します!

A 回答 (11件中11~11件)

コンパイルエラーがでます→エラーの内容を質問に入れましょう。

エラーの内容がわからなければ答えようがありません。

まぁ、今回のケースはバインド変数使っているのにただのStatementを使っていることが原因だとは思いますが、違いますか?
バインド変数を使う場合はPreparedStatementを使用します。
で、その場合は
1・PreparedStatementをSQLをパラメータとして取得
2・PreparedStatementに値をセット
3・PreparedStatementを実行
となります。

参考URL:http://www.atmarkit.co.jp/fjava/rensai/jdbc04/jd …

この回答への補足

大変失礼致しました。

Servlet.java:39: シンボルを解決できません。
シンボル: メソッド setString (int,java.lang.String)
場所 : java.sql.Statement の インタフェース
stmt.setString(3,"NAME");
がエラーとなります。

難しい言葉が理解できる程のスキルがなく恐縮なのですが、一度PreparedStatementにて試してみます。

補足日時:2007/04/27 12:13
    • good
    • 0

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