无法通过Java在Netbeans上执行SQL查询

时间:2018-11-03 07:45:42

标签: java sql netbeans jframe

我正在尝试使用JBDC更新我的SQL数据库。但是由于某种原因,查询似乎没有执行。我在登录屏幕和菜单中使用的是Jframe GUI。

我想做的是获取在登录屏幕中输入的帐号,然后将用户输入的金额减去当前余额后再减去,然后将帐号和重命名金额传递给数据库,更新帐户余额。

这是某些值的声明部分:

public class MainMenu extends javax.swing.JFrame
{
    private Login log = new Login();

    private Account acc = null;
    private String accnum = log.getacctfld();

    Connection con = new DBConnection().connect();    
}

这是提取按钮的代码:

private void withdrawActionPerformed(java.awt.event.ActionEvent evt)                                         
{                                             
    String input = amountentered.getText();

    if ("".equals(input))
    {
        message.setText("Enter amount to perform operation");
        return;
    }

    Double amt = Double.parseDouble(input);

    if (amt > acc.getAmount() || amt <= 0.0) 
    {
        message.setText("INVALID AMOUNT. PLEASE TRY AGAIN.");

        return;
    }

    double bal = acc.getAmount() - amt;

    String command = "UPDATE user_atm SET balance =? WHERE accno =?";

    try
    {     
        PreparedStatement ps = con.prepareStatement(command);

        ps.setDouble(1, bal);
        ps.setString(2, accnum);

        ps.executeQuery(); // I think the query isn't executing
        ps.executeUpdate();

    }
    catch(Exception e)
    {

    }

    acc.setAmount(bal);

    balance.setText(bal + "");
    amountentered.setText("");

} 

更新:

accnum尚未初始化。我试图从登录屏幕传递JTextField的值。但这没有用。因此,我将帐号传递给了设置器,然后将accnum分配给了获取器,现在它可以正常工作了。

我还删除了ps.executeQuery();

1 个答案:

答案 0 :(得分:0)

您必须使用executeUpdate()而不是executeQuery()
据我了解,您要更新数据库中的数据不是这种情况吗?
executeQuery()SELECT语句一起使用来获取行而不是udate。
所以删除ps.executeQuery();