尝试更新数据库时发生Java sql错误

尝试更新数据库时发生Java sql错误,java,sql,syntax,Java,Sql,Syntax,当我试图通过按钮触发的更新方法更新数据库时,我遇到了sql语法问题 这是按钮代码 update.addActionListener(e->{ int i=table.getSelectedRow(); 如果(i>=0){ model.setValueAt(PackId.getText(),i,0); model.setValueAt(PackName.getText(),i,1); model.setValueAt(VendorName.getText(),i,2); model.setValu

当我试图通过按钮触发的更新方法更新数据库时,我遇到了sql语法问题

这是按钮代码

update.addActionListener(e->{
int i=table.getSelectedRow();
如果(i>=0){
model.setValueAt(PackId.getText(),i,0);
model.setValueAt(PackName.getText(),i,1);
model.setValueAt(VendorName.getText(),i,2);
model.setValueAt(PackValue.getText(),i,3);
试一试{
更新包(PackId、PackName、VendorName、PackValue);
}捕获(SQLException可丢弃){
printStackTrace();
}
}否则{
System.out.println(“更新错误”);
}
更新方法代码

public void updatepacks(JTextField PackId、JTextField PackName、JTextField VendorName、JTextField PackValue)抛出SQLException{
试一试{
Connection conn=DriverManager.getConnection(“jdbc:sqlite:packsver3.db”);
字符串sqlupdate=“updatepacks”+“SET PackName=?”+“VendorName=?”+“PackValue=?”+“Where PackId=?”;
try(PreparedStatement ps=conn.prepareStatement(sqlupdate)){
ps.setString(1,String.valueOf(PackId));
ps.setString(2,String.valueOf(PackName));
ps.setString(3,String.valueOf(VendorName));
ps.setString(4,String.valueOf(PackValue));
ps.executeUpdate();
}
}捕获(例外e){
e、 printStackTrace();
}
}
错误呢


您在
UPDATE
语句中漏掉了逗号。它应该如下所示:

String sqlupdate = "Update  packs" 
  + " SET PackName = ?, " // added comma at the end
  + " VendorName = ?, " // added comma at the end
  + "PackValue = ? "
  + "Where PackId = ? ";
       

嗯,还有一个启动那些ps.setString(1,String.valueOf(PackId));ps.setString(2,String.valueOf(PackName));ps.setString(3,String.valueOf(VendorName));ps.setString(4,String.valueOf(PackValue));实际上不匹配的顺序?您在SQL语句中有…..packName应该是第一个,然后是vendorName,等等。我建议您实际检查它们是否为空/null:)您还可以检查
String.valueOf(PackId)的返回值
。对于我来说,返回JTextField中包含的文本并不明显。感谢您的帮助,我现在让它更新我的gui表,让数据库显示它。