动态更新表数据

时间:2013-10-22 08:49:48

标签: java mysql

我想动态地同时更新该字段的类别和英文列

我正在尝试更新表数据,但此代码无效。

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);

2 个答案:

答案 0 :(得分:0)

应该是:

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

(逗号代替AND,许多RDBMS期望参数出现问号,其他人希望$1$2成为String query6 = "UPDATE tagger.postag SET category=$1, english=$2";

顺便说一句,我强烈建议您不要连接引用的字符串。它使您的代码看起来不像一个准备好的语句,难以阅读。

答案 1 :(得分:0)

当您使用PreparedStatement时,为什么会使用字符串连接? PreparedStatement很简单,只需使用?占位符

即可
  

在执行PreparedStatement对象之前,您必须提供值来代替问号(?)占位符(如果有的话)。通过调用PreparedStatement类中定义的setter方法之一来完成此操作。

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