Java 动态更新表数据
我想同时动态更新字段的category和english列 我正在尝试更新表数据,但此代码不起作用Java 动态更新表数据,java,mysql,Java,Mysql,我想同时动态更新字段的category和english列 我正在尝试更新表数据,但此代码不起作用 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(
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);
应该是:
String query6 = "UPDATE tagger.postag SET category=?, english=?";
(逗号而不是和
,许多RDBM希望参数带有问号,其他RDBM希望参数带有$1
和$2
,这将是String query6=“UPDATE tagger.postag SET category=$1,english=$2”
)
顺便说一下,我强烈建议您不要连接带引号的字符串。它使您的代码看起来不像一个预先准备好的语句,也不难阅读。为什么您在使用字符串压缩?
PreparedStatement
很简单,只需使用?
占位符即可
在执行PreparedStatement对象之前,必须提供值来代替问号(?)占位符(如果有)。为此,请调用PreparedStatement类中定义的一个setter方法
欢迎来到SO!请明确您面临的问题是什么……请您告诉我们桌子的结构好吗?也;要更新整个表,并用这里给出的内容覆盖表中每一行的字段值,需要一个where子句。如果您遇到错误,请从控制台向我们提供stacktrace,如果您不理解它,您在这里看起来是新的…尝试在数据库的sql控制台中运行查询,一旦您获得了完美的查询,然后输入java代码…这样您就不必在每次微小的更改时再次运行程序。同样正如pythonian提到的,请在发布时提供错误消息/stacktrace。@pythonian 29033:声明是错误的,
和
仅在中有意义,其中
/具有
子句或作为加入
和朋友的参数。@Philip感谢您告诉我。但是我不需要知道,我想你找错人了字符串query6=“UPDATEtagger
postag
SET category=?,english=?”;
String query6 = "UPDATE tagger.postag SET category=? and english=?";
↑ ↑
psmt1 = conn2.prepareStatement(query6);
psmt1.setString(1,sql);
psmt1.setString(2,sqll);
psmt1.executeUpdate(query6);