更新表中的数据

时间:2017-08-16 18:26:49

标签: java mysql jdbc

我想在这里实现的是我在mysql数据库中有一个表名total_product,我想从表中检索SNo = 1的值并更新表中的Quantity。 我在GUI中使用了一个文本框,其中将编写附加产品。 表的输出存储在变量id中,生成的新数量存储在变量q1中。 所以新产品数量将是q1 = q1 + id。 我无法理解我应该在stmt.executeUpdate(sql)中使用的sql语句中放入什么,因为sql是一个字符串,我必须在sql字符串中将一个整数值传递给Qunty。

请帮助。

    Connection conn = null ;
    Statement stmt = null ;

    String url = "jdbc:mysql://localhost:3306/project";
    String user = "root";
    String password = ".dpadpep";
    try {

        Class.forName("com.mysql.jdbc.Driver");

        conn = DriverManager.getConnection(url,user,password);

        String sql = "Select Qunty from total_product " + "where SNo = 1";

        stmt = conn.createStatement();

        ResultSet rs = stmt.executeQuery(sql);

        int id=0;
        int q1 = Integer.parseInt(fld1[0].getText());

        while(rs.next()) {
            id = rs.getInt(1);
            System.out.println("Quantity="+id);
        }

        q1 = q1+id;

        sql = "UPDATE total_product " + "set Qunty = q1 where SNo=1";
        stmt.executeUpdate(sql);

1 个答案:

答案 0 :(得分:1)

您无需显式检索数据库中的当前值,只需直接添加额外的金额即可:

int q1 = Integer.parseInt(fld1[0].getText());
String sql = "UPDATE total_product SET Qunty = Qunty + ? WHERE SNo = 1";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, q1);
ps.executeUpdate();