我想在某种条件下更新数据库中的日期,所以我尝试了在执行的按钮操作中调用它的方法
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();
}
}
但它不会更新数据库中的任何内容。谁能帮帮我吗?
最佳答案
看不到任何更新可能有以下原因:
- 也许 where 子句不会返回任何行,因此不会更新任何行。
- 也许自动提交是错误的。在这种情况下,您需要显式调用 commit。请注意,您还可以查看交易。
- 有一个异常(exception),但在本例中似乎没有异常(exception)。
此外,使用PreparedStatement - 它更干净并且可以编译以供重用。
关于java - 在java中更新SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28657013/