java.sql.SQLException:结果集来自更新。没有数据。用于选择查询

问题描述 投票:0回答:1

在java中使用select命令运行SQLexecuteQuery函数时,即使它是一个选择查询,我仍然得到SQLException说

ResultSet is from UPDATE. No Data.

此问题仅在高负载时发生。否则查询效果很好。

我使用的是mysql连接器8.0.16

只有重新启动服务器才有帮助,但也需要在代码中处理此问题以确保安全。

这是示例函数

public CacheKey getResult(String type, String colId) {
ResultSet resultSet = null;
PreparedStatement statement = null;
try {
    
      String request = "select * from Table where a = ?";
      //mCxnContainer is connection which is declared at class level
      statement = mCxnContainer.getStatement(request);
      if (statement == null) {
           mCxnContainer = getNewConnection();
           statement = mCxnContainer.getStatement(request);
      }
      statement.setString(1, colId);
      resultSet = statement.executeQuery();
      returnEntry = cacheEntry.toEntry(resultSet);
    } catch (SQLException e) {
        e.printStacktrace();
    } finally {
        try {
            if (resultSet != null)
            resultSet.close();
            if (statement != null)
            statement.close();
        } catch (SQLException e) {
            e.printStacktrace();
        }
    }
    return returnEntry;
}
java mysql mysql-connector
1个回答
0
投票

问题是由于连接造成的。 一旦我们开始关闭连接并在需要时从池中获取新连接,问题就解决了。

© www.soinside.com 2019 - 2024. All rights reserved.