错误描述如下所示:
Can not issue executeUpdate() or executeUpdate() with statement that produce result sets:不能使用返回结果集的 SQL 语句执行 executeUpdate() 或 executeLargeUpdate() 方法。
这个错误通常由以下两种情况引起:
1.SQL 语句返回结果集:如果 SQL 语句会返回结果集(例如 SELECT 语句),则不能使用 executeUpdate() 或 executeLargeUpdate() 方法执行该语句,应该使用 executeQuery() 方法。
2.在同一 Statement 对象中执行多个 SQL 语句:如果在同一 Statement 对象中先执行一条返回结果集的 SQL 语句,然后再执行一条修改数据库内容的 SQL 语句,则会导致这个错误。
例如:
Statement stmt = conn.createStatement(); // 执行第一条 SQL 语句 ResultSet rs = stmt.executeQuery("SELECT * FROM user "); // 执行第二条 SQL 语句 int affectedRows = stmt.executeUpdate("DELETE FROM user WHERE id=1");
解决上述的这种情况,方法为:先创建多个 Statement 对象来执行不同的 SQL 语句,而不是在同一 Statement 中执行多个 SQL 语句。