简体   繁体   English

来自jtextfield的MySQL Java更新列

[英]Mysql Java update column from jtextfield

How to update a field in my database from a JTextField using java? 如何使用Java从JTextField更新数据库中的字段?

  • My field in the data base: total 我在数据库中的字段: total
  • My field in java: add_quantity 我在Java中的字段: add_quantity

I need to add the quantity to the total, using sql. 我需要使用sql将数量添加到总数中。

total = total + add_quantity

I tried this: 我尝试了这个:

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

What is the correct syntax for doing that? 正确的语法是什么?

Your question isn't very clear, datatype of the capital_total isn't provided. 您的问题不是很清楚,没有提供capital_total数据类型。 So, we'll assume that it's integer or numeric datatype. 因此,我们假设它是整数或数字数据类型。

MySQL syntax to add a value to the value that's already stored in a column, is something like this: 将一个值添加到已经存储在列中的值的MySQL语法是这样的:

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

If mycol contains a NULL value, then a NULL will be assigned. 如果mycol包含NULL值,则将分配NULL。 (An unknown value plus 20 results in an unknown value.) If you want to handle a NULL value as if it were zero... (一个未知值加20会导致一个未知值。)如果您想将NULL值当作零来处理...

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

As far as how you do that in Java prepared statement, use a bind placeholder in place of the value in the SQL text, and then provide a value for the bind placeholder with the setString method. 至于如何在Java预准备语句中执行此操作,请使用绑定占位符代替SQL文本中的值,然后使用setString方法为绑定占位符提供一个值。

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

sample code snippet for the use-case: 用例的示例代码片段:

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

Try using binds, eg 尝试使用绑定,例如

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM