JDBC返回错误数量的受影响的行

时间:2016-04-09 22:41:43

标签: mysql jdbc

如果我们有一个包含10行的表,并且我们执行此查询两次,则第二次得到错误的受影响行数。

3kl239zz

显然它不正确,因为在第一个查询中,所有行的价格都更新为1000,而在第二个查询中,实际上没有任何变化,但它再次返回10!

如何获取实际更新的行数?

1 个答案:

答案 0 :(得分:5)

JDBC规范显然要求驱动程序executeUpdate()返回UPDATE语句找到的行数,而不是实际受影响的行数。< / p>

要让MySQL Connector / J返回实际更改的行数,您可以将属性useAffectedRows=true添加到您的连接URL,尽管documentation确实警告它是

  

不符合JDBC标准,会破坏大多数依赖“找到”行和DML语句“受影响行”的应用程序