【问题标题】:UpdateQuery doesn't execute. How to fix this code?UpdateQuery 不执行。如何修复此代码?
【发布时间】:2019-06-12 16:06:05
【问题描述】:

我想获取 DATE 列中的日期,并想与 当前日期 进行比较。如果日期是less 而不是当前日期,那么我想SET PERMISSIONallow 的值。但是我的查询没有执行。

我尝试过的在下面的代码中给出。

Date date1 = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
//current date
Date date = new Date();
date1 = date;
CurrentDate.setText(date1.toString());
String UpdateQuery = null;
String Allow = "allow";
UpdateQuery = "UPDATE company SET permission = '"+Allow+"' WHERE date < ?";
pst = conn.prepareStatement(UpdateQuery);                 
SimpleDateFormat dateFormate = new SimpleDateFormat("yyyy-MM-dd");
String addDate = CurrentDate.getText();
pst.setString(2, addDate);
pst.executeUpdate();
System.out.println("Updated");

我想在更新查询执行时将permission table 的值设置为“允许”;

【问题讨论】:

  • 您使用的是哪个 Java 版本?
  • JAVA版本:1.8.0_111
  • “不更新”是什么意思?你得到一个实际的错误,还是你的数据库中的值没有更新?
  • 你能提供你所面临的日志/错误吗?
  • Stultuske .....兄弟...我没有收到任何错误。我的意思是更新查询没有执行。

标签: java database xampp swingx


【解决方案1】:

pst.setString(2, addDate);

我觉得应该改成:

pst.setString(1, addDate);

因为你准备好的语句中只有一个参数。

另外,在比较日期时,您需要将它们括在单引号中,因此将您的 UpdateQuery 字符串更改为
"UPDATE company SET permission = '"+Allow+"' WHERE date &lt; '?' ";

也是必要的一步。

【讨论】:

  • 我将其更改为 1... 但结果没有任何更改。
  • 尝试将 UpdateQuery 更改为 "UPDATE company SET permission = '"+Allow+"' WHERE date &lt; '?' "; 数据库通常需要将日期放在单引号中,否则它将被计算为数学表达式,即 2000-05-20没有单引号的只是 1975 年。
  • 那么可能是其他数据库连接问题,您的应用程序中的其他查询是否正确执行?
  • 兄弟...我刚刚发现并解决了这个问题....是的兄弟....我在 java 程序中的日期格式与 xampp 日期格式不兼容
猜你喜欢
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 2011-06-24
  • 2021-09-13
相关资源
最近更新 更多