executeUpdate失败的原因(" INSERT ...");

时间:2016-07-08 19:41:32

标签: java mysql jdbc

我正在用Java编写一个程序,将大量信息插入MySQL数据库,并需要跟踪失败的次数和原因。我理解executeUpdate()将返回受SQL语句影响的行数。

int rows = stmt.executeUpdate("INSERT/UPDATE...");

我的问题是,如果返回值为0(在这种情况下没有例外),有没有办法找到导致INSERT/UPDATE不起作用的可能原因?

2 个答案:

答案 0 :(得分:2)

对于UPDATE,返回值为0很明显:没有更新行。 对于INSERT,我能想到的唯一情况是当你尝试执行INSERT SELECT(...)并且SELECT的结果包含0行时。

答案 1 :(得分:1)

嗯,它并没有失败。零代表没有变化。 我看到了两种获取更多信息的方法。

  1. 使用返回false的stmt.execute()然后检查整数值。如果它是-1,那么结果就是一个坏迹象。

  2. 使用结果集进行插入/更新/删除操作。但是您需要检索要更新的确切数据/ .....

  3. 注意:如果抛出异常,你会在catch块中获得更友好的消息,exc.getMessage()