【问题标题】:SQL Query not executing through Java on NetbeansSQL 查询未通过 Netbeans 上的 Java 执行
【发布时间】:2023-04-04 02:02:01
【问题描述】:

我正在尝试使用 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 的值。但它没有用。所以我将帐号传递给 setter,然后将 accnum 分配给 getter,现在它可以工作了。

我还删除了ps.executeQuery();

【问题讨论】:

  • 仍然必须删除ps.executeQuery();
  • @forpas 哦,是的,我也删除了它。对不起,我忘了提。谢谢

标签: java sql netbeans jframe


【解决方案1】:

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

【讨论】:

  • 如果不起作用,则该语句一定是错误的或表中不存在acnum。
猜你喜欢
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
  • 1970-01-01
  • 2020-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多