【发布时间】:2015-05-27 10:00:24
【问题描述】:
我正在尝试将数据插入表的特定列(第 5 列和第 6 列)。
我的PreparedStatement代码如下:
PreparedStatement pst1 = connection.prepareStatement("insert into CustomerPayment (End_Time,Paid) values (?,?) where PC_Used ='"+cmbpcname.getSelectedItem().toString()+"'");
pst1.setString(5,lblendtime.getText());
pst1.setString(6,lblamount.getText().substring(3,5));
pst1.execute();
这个查询对吗?运行该查询时出现错误。任何建议都会有很大帮助。
【问题讨论】:
-
请提供错误文本
-
setString的第一个参数和其他set方法告诉实现您要在准备好的语句中替换哪个?占位符。由于您准备好的语句仅包含两个占位符,因此您会遇到一个异常,您尝试替换不存在的占位符。我假设End_Time和Paid分别是您的第五列和第六列。因此,您只需在占位符 1 和占位符 2 上使用setString,而不是在占位符 5 和 6 上使用。此外,您的列和变量名称表明数字类型更合适。 -
您的查询不起作用,插入没有 where 子句。
-
INSERT语句没有where子句。您在寻找UPDATE声明吗? postgresql.org/docs/current/static/tutorial-update.html -
其他人已经解决了您的实际问题。我只想回应 @nikitoz 并说 always always always 提供错误文本和堆栈跟踪。说“我遇到了错误”然后离开是行不通的。我们看不到你的屏幕,也对运行你的代码没有兴趣(除非你的问题看起来很有趣)。
标签: java sql jdbc prepared-statement