如何从java中知道在调用更新查询时记录是否被更新。我曾尝试过executeUpdate()中的返回类型int,但每当执行查询时,它都会显示1。也就是说,如果记录更改或不更改,它将返回值
如果您需要知道一行的数据是否因为更新而改变,您需要将参数传递给WHERE
子句,并做一个语句,例如UPDATE foo SET bar=1美元,baz=2美元WHERE bar
之后,
WHERE
子句将匹配的唯一方法是,是否有实际的更新要执行,并且您可以使用返回值来检查是否发生了更新。
另一种可能性是重构代码,这样你就不必为此烦恼,但你需要进一步解释你的用例。
执行更新(查询)
将返回更新的行数
int rows = statement.executeUpdate("Your_query");
System.out.println("number of rows updated "+rows);
如果没有任何更新,行将0
问题内容: 我必须每20秒阅读一次CSV。每个CSV都包含最小值。500至最大 60000行。我必须将数据插入Postgres表中,但是在此之前,我需要检查是否已插入项目,因为很有可能会获得重复的项目。检查唯一性的字段也已建立索引。 因此,我分块读取文件,并使用IN子句获取数据库中已有的项目。 有更好的方法吗? 问题答案: 这应该表现良好: 与这个答案密切相关。
问题内容: 我正在尝试根据特定的ID查询数据库。 如果这是第一次运行该活动,则该表将与id列一起存在,但是将不存在具有特定id的记录。如何检查该特定记录是否存在,如果不存在,则添加它?我发现有关检查特定列是否存在的很多信息,但与检查特定记录是否存在无关。 到目前为止,我已经尝试获取id列索引并检查它是否返回-1,但是由于某种原因,它实际上正在返回1。我可以在if语句中使用什么来验证尚未创建id列?
我写了一个这样的方法。此方法的目的是根据数据库中发送的列,通过查询是否有记录来返回。但是,当我键入Any(X=>X.)时,我无法访问相关表的列。我应该如何编辑或添加到此方法?我对这些事情一知半解。如果你能解释一下我会很高兴的。多谢了。
与此问题类似,如何查找数组中是否存在空值? 这里有一些尝试。 只有使用array\u to\u string的技巧才会显示预期值。有没有更好的方法来测试这一点?
问题内容: 我有一张大桌子可用来工作。我想检查是否有一些记录的parent_id等于我的传递值。目前,我实现的方法是使用“从mytable中选择count(*),其中parent_id =:id”;如果结果> 0,则表示它们确实存在。 因为这是一个非常大的表,并且我不在乎存在的确切记录数,所以我只想知道它是否存在,所以我认为count(*)效率很低。 如何以最快的方式实现此要求?我正在使用Orac
我们使用liquibase指定数据库布局及其更改。在开发中,我们使用集成在Java应用程序中的liquibase来执行必要的更新。 因为我们的应用程序没有权利在生产中更改模式,所以liquibase不在生产中运行。相反,我们使用liquibase生成SQL脚本。然后在部署应用程序之前手动执行这些脚本。 我们希望确保数据库布局与对应于应用程序的变更日志匹配。SQL脚本创建表并插入类似liquibas