在 java 中更新 SQL

Updating SQL in java

我想在某些情况下更新数据库中的日期,所以我尝试了我在执行的按钮操作中调用它的方法

public void DeleteDate (JTextField txt1, JTextField txt2)
{
 try {
        Class.forName("com.mysql.jdbc.Driver");
        String m = "IMCDietitian";
        String unicode= "?useUnicode=yes&characterEncoding=UTF-8";
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/"+m+""+unicode+"","root","");
        System.out.println("connected");
        String dept = jComboBox1.getSelectedItem().toString();

        Statement st = conn.createStatement();
        st.executeUpdate("UPDATE "+dept+" SET edate = '"+jTextField1.getText()+"' WHERE pname = '"+txt1.getText()+"' AND rno = '"+txt2.getText()+"' AND edate = '-'");

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

但它不会更新数据库中的任何内容。谁能帮帮我?

看不到任何更新可能有以下原因:

  1. 可能 where 子句不会返回任何行,因此不会更新任何行。
  2. 也许自动提交是错误的。在这种情况下,您需要显式调用提交。请注意,您还可以查看交易。
  3. 一个例外,但在这种情况下似乎有 none。

此外,使用 PreparedStatement - 它更干净并且经过编译以供重用。