-1

フィールドのカテゴリと英文欄を動的に同時に更新したい

テーブル データを更新しようとしていますが、このコードは機能しません。

String query6 = "UPDATE `tagger`.`postag` SET category='"+"sqll"+" and english='"+"sql"+"";
psmt1 = conn2.prepareStatement(query6);
psmt1.setString(1,sql);
psmt1.setString(2,sqll);
psmt1.executeUpdate(query6);
4

2 に答える 2

0

そのはず:

String query6 = "UPDATE tagger.postag SET category=?, english=?";

( の代わりにコンマAND、多くの RDBMS は引数に疑問符を期待しますが、他のものは必要$1で、$2どれが になりますString query6 = "UPDATE tagger.postag SET category=$1, english=$2";)

ところで、引用符で囲まれた文字列を連結しないことを強くお勧めします。これにより、コードが準備済みステートメントのように見えなくなり、読みにくくなります。

于 2013-10-22T09:16:19.523 に答える
0

を使用しているときに文字列連結を行うのはなぜPreparedStatementですか? プレースホルダー
PreparedStatementを使用するだけで簡単です?

PreparedStatement オブジェクトを実行する前に、疑問符 (?) プレースホルダー (存在する場合) の代わりに値を指定する必要があります。これを行うには、PreparedStatement クラスで定義されている setter メソッドの 1 つを呼び出します。

String query6 = "UPDATE tagger.postag SET category=? and english=?";
                                                   ↑             ↑
psmt1 = conn2.prepareStatement(query6);
psmt1.setString(1,sql);
psmt1.setString(2,sqll);
psmt1.executeUpdate(query6);  
于 2013-10-22T13:05:36.937 に答える