如何从 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 查询。
您的 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();
}
希望好用..本人未测试,如有小错误请见谅
如何减去 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 查询。
您的 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();
}
希望好用..本人未测试,如有小错误请见谅