如何从 java 中的 executeUpdate 或更新中获取值?

How to get a value from an executeUpdate OR update in java?

我正在尝试从 postgresql 更新中获取一些返回数据。 "update" 在数据库脚本中运行良好,但在 java 中我遇到了一些问题:代码在执行查询时卡住了。

我正在尝试使用 "PreparedStatament ps"、"ResultSet rs=ps.executeQuery" 和 "if(rs.next)" 从查询中的 "returning" 获取数据,但代码似乎没有获取在那里,因为它正好卡在 "ps.executeQuery" 中。

这或多或少是我正在尝试做的事情:

String cVal="";
ps=myConn.prepareStatement("UPDATE someTable SET aValue=? WHERE bValue=? 
returning Cvalue");
ps.setInt(1,"aNewValue");
ps.setInt(2,"aID");
rs=ps.executeQuery();
if (rs.next()){
  cVal=rs.GetString("Cvalue");
  return true;
}else{
  return false;
}

我正在尝试将 "RETURNING" 的值设置为一些变量。我要设置 4 个结果。

由于您正在尝试更新,在 PreparedStatement 的情况下,您必须使用 executeUpdate() 方法。

要了解有关 Statement 和 PreparedStatment 中方法的更多详细信息,请查看下面的

https://docs.oracle.com/javase/8/docs/api/java/sql/PreparedStatement.html#executeUpdate--

你可以参考下面的例子。 https://www.mkyong.com/jdbc/jdbc-preparestatement-example-update-a-record/

首先用ps.executeUpdate ()执行更新语句,其中returns整数01。该值指示更新语句是否已执行。之后,执行 select 查询以获取更新后的数据。