Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.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
更新SQL查询在Java Swing中不起作用_Java_Postgresql_Jdbc - Fatal编程技术网

更新SQL查询在Java Swing中不起作用

更新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) {

在这里,我创建了一个名为sub_master的表,该表具有列sub_id和名称,插入和删除可以很好地使用它,所以将这些函数也放在这里,以获取更新函数的参考 我正在使用PostgreSQL来实现这一点。 在命令行中,更新查询工作正常,查询如下: 更新school_submaster SET name='',其中sub_id=

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
(也许这甚至可以解决您的问题)