Mysql Java 从 jtextfield 更新列

Mysql Java update column from jtextfield

如何使用 java 从 JTextField 更新我的数据库中的字段?

我需要将数量添加到总数中,使用 sql。

total = total + add_quantity

我试过这个:

String value1 = jTextField5.getText();       
PreparedStatement pst = cn.prepareStatement("UPDATE Capitales_totales SET capital_total = $capital_total + '"+value1+"';

这样做的正确语法是什么?

用例的示例代码片段:

PreparedStatement pst = cn.prepareStatement("Update  Capitales_totales set capital_total =capital_total+?");
pst.setString(1, Integer.parseInt("int_string"));

OR

pst.setInt(1, 1001); //sample int 1001

尝试使用绑定,例如

PreparedStatement pst = cn.prepareStatement("UPDATE Capitales_totales SET capital_total = capital_total + ?");
pst.setInt(1, Integer.parseInt(value1));

注意:Integer.parseInt() 可能会抛出 RuntimeExpection

你的问题不是很清楚,没有提供capital_total的数据类型。因此,我们假设它是整数或数字数据类型。

MySQL 将值添加到已存储在列中的值的语法是这样的:

  UPDATE mytable 
     SET mycol = mycol + 20
   WHERE id = 1

如果 mycol 包含 NULL 值,则将分配 NULL。 (未知值 加上 20 会产生一个未知值。)如果您想将 NULL 值当作零来处理...

  UPDATE mytable 
     SET mycol = IFNULL(mycol,0) + 20
   WHERE id = 1

至于如何在 Java 准备好的语句中执行此操作,请使用绑定占位符代替 SQL 文本中的值,然后为绑定占位符提供一个值setString 方法。

String sql = "UPDATE mytable
                 SET mycol = IFNULL(mycol,0) + ?
               WHERE id = 1";
PreparedStmt pst = cn.prepareStatement(sql);
pst.setString(1, value1);