mysql / java executeUpdate如何返回匹配的行和更新的行

时间:2013-02-17 14:58:55

标签: mysql hibernate sql-update

我需要使用条件C对带有java驱动程序的给定表执行更新。

如果没有与条件C匹配的行,我需要在表中插入一个新实体。 如果该行存在,那么就应该进行更新。

为此,是否可以从更新查询返回以下两个信息:

-Matched rows count
-Updated rows count

我相信executeUpdate只返回更新的行数。 问题是,如果更新查询没有更新任何内容,它可能为零,所以我无法知道0表示不匹配(我需要执行插入)或不更新。

注意:解决方法可能是插入一个随机字段(或日期),每次都会更新,但我更喜欢更好的解决方案。

由于

1 个答案:

答案 0 :(得分:1)

更新和匹配的行数相同。即使该行已经具有更新中传递的值,它也将被计为更新的行:

id   name
1    foo

update mytable set name = 'foo' where id = 1;

--> 1 row updated