Java sql命令未正确结束
当我试图向表中插入数据时,我使用的是sql developer和netbeans,这个错误是“sql命令没有正确结束”。 这就是我试过的Java sql命令未正确结束,java,oracle-sqldeveloper,Java,Oracle Sqldeveloper,当我试图向表中插入数据时,我使用的是sql developer和netbeans,这个错误是“sql命令没有正确结束”。 这就是我试过的 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { dbconnection db = new dbconnection(); try { db.connect(); db.stm = db.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
dbconnection db = new dbconnection();
try {
db.connect();
db.stm = db.con.createStatement();
int result = db.stm.executeUpdate(
"insert into payment values'" + txt_paymentid.getText() + "','" + txt_reservation.getText() +"',
" + "'"+txt_fname.getText()+"',
'"+txt_lname.getText()+"' ,'"+txt_roomid.getText()+"' ,'"+txt_rate.getText()+"' ," + " '"+((JTextField)txt_datein.getDateEditor().getUiComponent()).getText()+"' ,"
+ "'"
((JTextField
)txt_dateout.getDateEditor().getUiComponent()).getText() + "'," + "'" + txt_days.getText() + "','" + txt_payment.getText() + "','" + txt_balance.getText() + "'"
);
if (result > 0) {
JOptionPane.showMessageDialog(this, "Data has been saved succesfully");
} else {
JOptionPane.showMessageDialog(this, "no data has been saved");
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(this, e.toString());
}
}
首先
sql应该位于()
->
其次,insert命令本身似乎无效
insert into table values (' ....
您确定这是Java代码吗?如果将构造的SQL语句打印到控制台,您会看到什么?如果尝试运行生成的语句,会发生什么?你能看出它是无效的吗(首先缺少括号)?为什么不使用一个准备好的语句,将各种文本字符串作为绑定变量,而不是尝试嵌入它们呢?当我单击按钮时,会显示“sql命令没有正确结束”。还有其他insert语句工作得很好,它们看起来像这样,但我认为表是问题所在。我从数据库中删除了表并重新创建了它,但错误仍然是一样的。所有其他插入都是一样的working@suldanka-values子句内容周围缺少括号,正如恐怖蝙蝠已经指出的那样。您正在构造类似于
插入到支付值'x','y','z'
(抛出ORA-00933)的东西,而不是插入到支付值('x','y','z')
。这是一个基本的语法问题。如果您使用准备好的语句,这将更容易识别,但是如果您只是打印出构造好的语句,这也非常容易。现在呢?您错过了我的第二点,insert命令无效(而且非常混乱)-请看,您应该能够通过将insert命令复制并粘贴到sql客户机中来让它工作
executeUpdate("insert...)
insert into table values (' ....