首页 > 解决方案 > OperationNotSupportedException:流结果(ResultSet)不支持操作

问题描述

鉴于以下代码:

if (resultSet == null) {
  pageNumber = 0;
  resultSet = getResultSet(db);
}
if (resultSet != null) {
  resultSetMetaData = resultSet.getMetaData();
  columnCount = resultSetMetaData.getColumnCount();
  resultSetArray = getResultSetAsList(resultSet, columnCount);
  rowCount = resultSetArray.size();
}

countTempSize = 0;
if (rowCount > 0 && resultSetArray != null && resultSetArray.size() > 0) {
  pageNumber = pageNumber + rowCount;
  ResultSet tempResultSet = getResultSet(db);
  if (resultSet != null && tempResultSet != null) {
    if (tempResultSetArray != null && tempResultSetArray.size() > 0) {
      tempResultSetArray.clear();
    }
    tempResultSetArray = getResultSetAsList(tempResultSet, columnCount);
    for (String columnName: timestampColumnName) {
      resultSet.last();
      tempResultSet.beforeFirst();
      int i = 0;
      while (tempResultSet.next() && resultSet.getString(columnName).toString().equals(tempResultSet.getString(columnName).toString())) {
        resultSetArray.add(tempResultSetArray.get(i));
        i++;
        countTempSize++;
      }
    }
  }
}

以下错误发生在resultSet.last();

错误无法运行表 TimestampIncrementingTableQuerier{table="mpdb"."meta_eligibility", query='null', topicPrefix='Audit-mpdb-', incrementingColumn='', timestampColumns=[created_on]}: {} (io .confluent.connect.jdbc.source.JdbcSourceTask) com.mysql.jdbc.OperationNotSupportedException:com.mysql.jdbc 的 com.mysql.jdbc.RowDataCursor.notSupported(RowDataCursor.java:452) 的流式结果集不支持操作。 RowDataCursor.beforeFirst(RowDataCursor.java:260) 在 com.mysql.jdbc.ResultSetImpl.first(ResultSetImpl.java:1129) 在 io.confluent.connect.jdbc.source.TableQuerier.maybeStartQuery(TableQuerier.java:130) 在 io .confluent.connect.jdbc.source.TimestampIncrementingTableQuerier.maybeStartQuery(TimestampIncrementingTableQuerier.java:63) 在 io。confluent.connect.jdbc.source.JdbcSourceTask.poll(JdbcSourceTask.java:300) 在 org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:179) 在 org.apache.kafka.connect.runtime。 WorkerTask.doRun(WorkerTask.java:170) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:214) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java :617) 在 java.lang.Thread.run(Thread.java:745)179) 在 org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:170) 在 org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:214) 在 java.util.concurrent .Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java. util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)179) 在 org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:170) 在 org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:214) 在 java.util.concurrent .Executors$RunnableAdapter.call(Executors.java:511) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java. util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)

这是行不通的。我该怎么写?

标签: javamysqljdbc

解决方案


推荐阅读