【问题标题】:Check whether a record is updated in postgres database from java JDBC从java JDBC检查postgres数据库中的记录是否更新
【发布时间】:2016-12-08 15:49:18
【问题描述】:

当调用更新查询时,我如何从 java 中知道记录是否被更新。 我曾尝试过 executeUpdate() 的返回类型 int,但只要执行查询,它就会显示 1。也就是说,无论记录是否更改,它都会返回值 > 1。 如果有机会在 postgresql 中触发调用 java method() 会对此有所帮助。 请帮忙。

【问题讨论】:

  • 你说的更新是什么意思?某些列值何时更改?
  • 我想知道哪一栏受到了更新的影响
  • @AntonyJoslin 为什么?您要寻找的最终结果是什么?您将如何处理某些列已更新的信息?
  • 它用于弹出一个窗口以向另一个用户显示一个同时工作的列已经更新。
  • 当有人分享或喜欢我们的帖子时,就像弹出facebook的窗口。

标签: java mysql postgresql hibernate jdbc


【解决方案1】:

如果您需要知道某行的数据是否因更新而更改,则需要将参数传递给WHERE 子句,例如UPDATE foo SET bar = $1, baz = $2 WHERE bar <> $1 AND baz <> $2 AND id = $3 .示例假设您希望根据 id 更新单行的两列。

之后,WHERE 子句匹配的唯一方法是是否有实际更新要做,您可以使用返回值来检查是否发生了更新。

另一种可能性是重构您的代码,这样您就无需为此烦恼,但您需要进一步解释您的用例。

【讨论】:

    【解决方案2】:

    executeUpdate(Query) 将返回更新的行数

    int rows = statement.executeUpdate("Your_query");
    System.out.println("number of rows updated "+rows);
    

    如果没有更新,行将是 0

    【讨论】:

      猜你喜欢
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多