如何(通过Java)更新MySQL中的多个列?
这只是我的一段代码:如何(通过Java)更新MySQL中的多个列?,java,mysql,syntax,Java,Mysql,Syntax,这只是我的一段代码: Sql = "update budgetreport" + " set sales="+salesText.getText()+ " where quarter="+ qTracker+ " set cogs="+cogsText.getText()+ " where quarter="+ qTracker; try {
Sql = "update budgetreport" +
" set sales="+salesText.getText()+
" where quarter="+ qTracker+
" set cogs="+cogsText.getText()+
" where quarter="+ qTracker;
try {
myStmt.executeUpdate(Sql);
} catch (Exception e1) {
e1.printStackTrace();
}
我的问题是,它说有一个SQL语法。我只运行了第一部分:
Sql = "update budgetreport" +
" set sales="+salesText.getText()+
" where quarter="+ qTracker;
try {
myStmt.executeUpdate(Sql);
} catch (Exception e1) {
e1.printStackTrace();
}
它运行良好。但我不知道如何才能使我的第一段代码发挥作用。感谢您花时间阅读/回答:)!
……试试这个:
Sql = "update budgetreport" +
" set sales="+salesText.getText()+
", cogs="+cogsText.getText()+
" where quarter="+ qTracker;
请注意SQL注入攻击和错误,您不应使用未检查的文本框内容进行连接。尝试以下操作:
Sql = "update budgetreport" +
" set sales="+salesText.getText()+
", cogs="+cogsText.getText()+
" where quarter="+ qTracker;
注意SQL注入攻击和错误,您不应该使用未经检查的文本框内容进行连接。使用。这样安全多了
String sql = "update budgetreport set sales=? where quarter=?";
PreparedStatement statement = con.prepareStatement(sql);
statement.setString(1, salesText.getText());
statement.setString(2, qTracker.toString());
statement.executeUpdate();
使用一个。这样安全多了
String sql = "update budgetreport set sales=? where quarter=?";
PreparedStatement statement = con.prepareStatement(sql);
statement.setString(1, salesText.getText());
statement.setString(2, qTracker.toString());
statement.executeUpdate();
每次更新只允许一个SET关键字
String sql = "update budgetreport" +
" set sales=?, cogs=?" +
" where quarter=?";
PreparedStatement preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1, salesText.getText());
...
preparedStatement.executeUpdate();
每次更新只允许一个SET关键字
String sql = "update budgetreport" +
" set sales=?, cogs=?" +
" where quarter=?";
PreparedStatement preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1, salesText.getText());
...
preparedStatement.executeUpdate();
您可能应该从这里开始:因为您的SQL语法不正确。试一试
update budgetreport set sales=?,cogs=? where quarter=?
以上应是一份准备好的声明。见:
或者,您可以通过使用一些轻量级的框架来简化您的生活,例如:它抽象了PreparedStatements并使您的代码更具可读性。您可能应该从这里开始:因为您的SQL语法不正确。试一试
update budgetreport set sales=?,cogs=? where quarter=?
以上应是一份准备好的声明。见:
或者,您可以通过使用一些轻量级的框架来简化您的生活,例如:它抽象了PreparedStatements并使您的代码更具可读性。更新查询的语法不正确,因此您需要更改它> 更新表 设置column1=expression1
column2 = expression2,
....
在什么情况下
比如说
Sql=更新预算报告”+
“set sales=“+salesText.getText()+
“,cogs=“+cogsText.getText()+
“where quarter=“+qTracker;”
更新查询的语法不正确,因此您需要更改它>
更新表
设置column1=expression1
column2 = expression2,
....
在什么情况下
比如说
Sql=更新预算报告”+
“set sales=“+salesText.getText()+
“,cogs=“+cogsText.getText()+
“where quarter=“+qTracker;”
我对MySql了解不多,但似乎应该是两种不同的update
语句:一种用于sales
,另一种用于cogs
。此外,您还想使用preparedStatements,因为如果问题得到解决,以这种方式构建SQL最终会让您走上一条黑暗的道路,请将其中一个答案标记为已接受。我对MySql了解不多,但它似乎应该是两个不同的update
语句:一个用于sales
,另一个用于cogs
。此外,您还希望使用preparedStatements,因为如果您的问题得到解决,以这种方式构建SQL将最终导致您走上一条黑暗的道路,请把其中一个答案标记为已接受。哎呀,我现在真的觉得自己像个白痴。我所缺少的只是一个逗号!无论如何,谢谢你的回复,我真的很感激:)哎呀,我现在真的觉得自己像个白痴。我所缺少的只是一个逗号!无论如何,感谢您的回复,我真的很感激:)PreparedStatement对象有什么帮助?只是好奇,谢谢!它可以防止攻击,还可以引用字符typesOk,我不知道。我一定会用的,“PreparedStament”对象有什么帮助?只是好奇,谢谢!它可以防止攻击,还可以引用字符typesOk,我不知道。我一定会用的。