解决Can not issue executeUpdate() or executeUpdate() with statement that produce result sets问题~

错误描述如下所示:

解决Can not issue executeUpdate() or executeUpdate() with statement that produce result sets问题~_第1张图片

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 语句。

你可能感兴趣的:(mistakes,issue,java,数据库,后端,sql)