Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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
Java sql命令未正确结束_Java_Oracle Sqldeveloper - Fatal编程技术网

Java 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.

当我试图向表中插入数据时,我使用的是sql developer和netbeans,这个错误是“sql命令没有正确结束”。 这就是我试过的

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 (' ....