java - 在java中更新SQL

标签 java mysql jdbc

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

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. 也许自动提交是错误的。在这种情况下,您需要显式调用 commit。请注意,您还可以查看交易。
  3. 有一个异常(exception),但在本例中似乎没有异常(exception)。

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

关于java - 在java中更新SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28657013/

相关文章:

java - 使类可打印

java - Spring ApplicationContext.getBean(Class c) 不适用于代理类

Java arraylist 掷骰子

mysql - 我不明白如何从下表中得到预期结果

Mysql INSTR 帮助仅搜索匹配更多文本的 1 行

java - 单次执行后关闭 PreparedStatement——这是设计缺陷吗?

java - 将Java数据转换为json

大表的 Mysql 性能

java - MySQL JDBC 驱动程序 5.1.33 - 时区问题

连接Oracle数据库时遇到java.sql.SQLException