更新SQL查询在Java Swing中不起作用
在这里,我创建了一个名为sub_master的表,该表具有列sub_id和名称,插入和删除可以很好地使用它,所以将这些函数也放在这里,以获取更新函数的参考 我正在使用PostgreSQL来实现这一点。 在命令行中,更新查询工作正常,查询如下: 更新school_submaster SET name='',其中sub_id=更新SQL查询在Java Swing中不起作用,java,postgresql,jdbc,Java,Postgresql,Jdbc,在这里,我创建了一个名为sub_master的表,该表具有列sub_id和名称,插入和删除可以很好地使用它,所以将这些函数也放在这里,以获取更新函数的参考 我正在使用PostgreSQL来实现这一点。 在命令行中,更新查询工作正常,查询如下: 更新school_submaster SET name='',其中sub_id= private void InsertRowActionPerformed(java.awt.event.ActionEvent evt) {
private void InsertRowActionPerformed(java.awt.event.ActionEvent evt)
{
String query = "INSERT INTO school_submaster (sub_id, \"name\") VALUES ("+SidInput.getText()+",'"+SnameInput.getText()+"')";
executeSQlQuery(query, "Inserted");
}
private void UpdateRowActionPerformed(java.awt.event.ActionEvent evt)
{
String query = "UPDATE school_submaster SET 'name' ='"+SnameInput.getText()+"'+WHERE sub_id = "+SidInput.getText();
executeSQlQuery(query, "Updated");
}
private void DeleteRowActionPerformed(java.awt.event.ActionEvent evt)
{
String query = "DELETE FROM school_submaster WHERE sub_id = "+SidInput.getText();
executeSQlQuery(query, "Deleted");
}
sql
WHERE
子句中缺少一个空格,请按如下所示添加它:
String query = "UPDATE school_submaster SET 'name' ='"+
SnameInput.getText()+"' WHERE sub_id = "+SidInput.getText();
sql
WHERE
子句中缺少一个空格,请按如下所示添加它:
String query = "UPDATE school_submaster SET 'name' ='"+
SnameInput.getText()+"' WHERE sub_id = "+SidInput.getText();
仅对字符串和日期常量使用单引号。切勿在列名或表名周围使用单引号 您的
更新是:
UPDATE school_submaster
SET 'name' ='<something>'+WHERE sub_id = "+SidInput.getText();
但即便如此,情况也并非如此。您需要学习使用参数将参数传递到查询中。该查询应为以下变量:
UPDATE school_submaster
SET name = ?
WHERE sub_id = ?
其中,?
是参数的占位符(也可能是@name
或其他内容)。仅对字符串和日期常量使用单引号。切勿在列名或表名周围使用单引号
您的更新是:
UPDATE school_submaster
SET 'name' ='<something>'+WHERE sub_id = "+SidInput.getText();
但即便如此,情况也并非如此。您需要学习使用参数将参数传递到查询中。该查询应为以下变量:
UPDATE school_submaster
SET name = ?
WHERE sub_id = ?
其中,?
是参数的占位符(也可能是@name
或其他内容)。1“更新SQL查询在Java Swing中不起作用”在命令行中起作用吗?如果不是,这就很好地表明Swing与问题无关,不应该被提及。标签中提到的IDE也是如此。2) 访问数据库时,使用PreparedStatement
而不是原始字符串。3) 请学习常见的Java命名法(命名约定-例如,EachWordUpperCaseClass
,firstWordLowerCaseMethod()
,firstWordLowerCaseAttribute
,除非它是一个大写常量
),并一致地使用它。是的,它在命令行@andhompson中工作,以便更快地获得更好的帮助,发布一个or。你的错误是什么?“不工作”不是正确的错误描述。还有,但是:请学习如何正确使用PreparedStatement
(甚至可以解决您的问题)1)“更新SQL查询在Java Swing中不起作用”它在命令行中起作用吗?如果不是,这就很好地表明Swing与问题无关,不应该被提及。标签中提到的IDE也是如此。2) 访问数据库时,使用PreparedStatement
而不是原始字符串。3) 请学习常见的Java命名法(命名约定-例如,EachWordUpperCaseClass
,firstWordLowerCaseMethod()
,firstWordLowerCaseAttribute
,除非它是一个大写常量
),并一致地使用它。是的,它在命令行@andhompson中工作,以便更快地获得更好的帮助,发布一个or。你的错误是什么?“不工作”不是正确的错误描述。还有,但是:请学习如何正确使用PreparedStatement
(也许这甚至可以解决您的问题)