插入新行时出现SQL语法错误

插入新行时出现SQL语法错误,第1张

插入新行时出现SQL语法错误

您的第二个查询缺少

Values
子句中的右括号。

代替直接在查询中附加参数,请使用参数化查询。

public void mouseClicked(MouseEvent e) {    if (cal == true) {        try {        int balchange = updatebal;        String username = (String) userPicker.getSelectedItem();        Connection conn = DriverManager.getConnection( Host, Name, Pass );          PreparedStatement pst = conn.prepareStatement("UPDATE table_1 SET user_bal=? WHERe user_name=?");        pst.setInt(1, balchange);        pst.setString(2, username);        pst.execute();        String sign = "£";        String PayName = textField_1.getText();        PreparedStatement pst2 = conn.prepareStatement("INSERT INTO payment_info (payment_name, payment_amount, payment_date, username)"        + " VALUES (?, ?, ?, ?)");        pst2.setString(1, PayName);        pst2.setString(2, sign + balchange);        pst2.setString(3, "Date");//if it's date column use ps2.setDate(3, new Date());        pst2.setString(4, username);        pst2.execute();        cal = false;        }         catch (Exception e3) {        e3.printStackTrace();        }    }    else {        JOptionPane.showMessageDialog(null, "Please use the Calculator First!");    }}

这样看起来会更干净,更容易编写。最重要的是,它将使您免受SQL
Injection
攻击。

这是用于参数化查询的Oracle文档https://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5565959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存