java - 如何从java中的executeUpdate OR update中获取值?
Posted
技术标签:
【中文标题】java - 如何从java中的executeUpdate OR update中获取值?【英文标题】:How to get a value from an executeUpdate OR update in java? 【发布时间】:2019-07-26 17:46:38 【问题描述】:我试图从 postgresql 更新中获取一些返回数据。 “更新”在 DB 脚本中运行良好,但在 java 中我遇到了一些问题:代码在执行查询时卡住了。
我正在尝试使用“PreparedStatament ps”、“ResultSet rs=ps.executeQuery”和“if(rs.next)”从查询中的“返回”中获取数据,但似乎代码没有进入那里,因为它正好卡在“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;
我正在尝试将“返回”的值设置为一些变量。我要设置 4 个结果。
【问题讨论】:
使用executeUpdate()
;用于更新、插入和删除,而不是 executeQuery()
【参考方案1】:
由于您正在尝试更新,因此在 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/
【讨论】:
我知道 executeUpdate 返回 1 或 0,但是如何从返回中获取值?只有在executeUpdate中是否有任何类型的“rs.get ...”?? 您将使用更新查询获得受影响的行数。【参考方案2】:首先使用ps.executeUpdate ()
执行更新语句,返回整数0
或1
。该值指示更新语句是否已执行。之后,执行 select 查询,获取更新后的数据。
【讨论】:
为了便于阅读,请考虑在答案中添加标点符号。以上是关于java - 如何从java中的executeUpdate OR update中获取值?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 java 中的组件获取 BufferedImage?
如何从 Java 中的 Java 列表创建 scala.collection.immutable.Seq?
java - 如何使用Java从文件夹中的所有文件中一一读取数据? [复制]