如何从 jtextfield 中减去 mysql 数据库的输入?

How do I subtract an input from jtextfield to mysql database?

如何减去 mysql 数据库中的输入? 假设我正在做一个账单和库存系统。因此,当用户在 jtextfield 上输入一个数量时,它会从 table 中减去。 将附加 GUI。

现在,我写了这个方法

    public boolean updateBill(Bill bi) {
    boolean success = false;
    dbController db = new dbController();
    PreparedStatement ps;

    try {

        myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ooadp?useSSL=false", "root", "pass"); 

        Statement myStatement = myConn.createStatement();

        String sql = "UPDATE medicalproduct SET  quantity =  quantity - ? WHERE productID = ?, productName = ?, dosage = ?, price = ?, status = ?" ;

        myStatement.executeUpdate(sql);



        myConn.close();

    } catch (Exception e) {
        e.printStackTrace();
    }

    return success;

}

但是我不知道在我的 actionPerform 上写什么以及如何 link 我的 jtextfield 到 sql 查询。

This is how my gui looks like

您的 sql 语句无论如何都是无效的...但是如果我是对的,您要做的就是从数据库中的字段中减去 jTextField

中指定的值
//For example quantity -= txtfieldValue;

如果做你想做的。您可以查询该字段的值,进行减法运算,最后更新该字段。这是仅更新数量的示例:

public void updateQuantity(String txtFieldValue,String id) throws ClassNotFoundException, SQLException{
        Class.forName("com.mysql.jdbc.Driver");
        System.out.println("Driver loaded!!!");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/ooadp?useSSL=false", "root", "pass");
        System.out.println("Connection  created!!!");

        PreparedStatement pState;

        String sqlRawP1 ="select quantity from medicalproduct  where productID=?";//I guess medicalproduct is your table name
        pState = conn.prepareStatement(sqlRawP1);
        pState.setString(1, id);
        ResultSet rSetQuantity = pState.executeQuery();

        int countQuantity = 0;
        while(rSetQuantity.next()){
            countQuantity = rSetQuantity.getInt(1);//Am assumming that quantity is an integer
        }

        int value = Interger.parseInt(txtFieldValue);

        countQuantity-= value;

        String sqlRawP2 = "update medicalproduct set quantity=? where productID=?";
        pState = conn.prepareStatement(sqlRawP2);
        pState.setInt(1,countQuantity);
        pState.setString(2, id);

        pState.executeUpdate();

}

希望好用..本人未测试,如有小错误请见谅