Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 动态更新表数据_Java_Mysql - Fatal编程技术网

Java 动态更新表数据

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(

我想同时动态更新字段的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(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=“UPDATE
tagger
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);