@Override
  public void fetchEnd(DBCSession session, final DBCResultSet resultSet) throws DBCException {
    if (!nextSegmentRead) {
      // Read locators' metadata
      ResultSetUtils.bindAttributes(session, resultSet, metaColumns, rows);
    }

    final List<Object[]> tmpRows = rows;

    final boolean nextSegmentRead = this.nextSegmentRead;
    runInUI(
        new Runnable() {
          @Override
          public void run() {
            // Push data into viewer
            if (!nextSegmentRead) {
              resultSetViewer.updatePresentation(resultSet);
              resultSetViewer.setData(tmpRows);
            } else {
              resultSetViewer.appendData(tmpRows);
            }
            // Check for more data
            hasMoreData = maxRows > 0 && tmpRows.size() >= maxRows;
          }
        });
  }
예제 #2
0
 /**
  * Query all records, reflection to a JavaBean List
  *
  * @param type
  * @param sql
  * @param args
  * @param sqlTypes
  * @return
  * @throws Exception
  */
 public <T> List<T> queryObjectListUseReflection(
     Class<T> type, final String sql, Object[] args, int[] sqlTypes) {
   if (showSql) {
     logger.info(getFinalSql(sql, args, sqlTypes));
   }
   Connection conn = null;
   PreparedStatement pstmt = null;
   ResultSet rs = null;
   try {
     conn = getConnection();
     pstmt = conn.prepareStatement(sql);
     applyQueryTimeOut(pstmt);
     if (args != null) {
       if (sqlTypes != null) {
         JdbcUtils.setPreparedStatementValue(pstmt, args, sqlTypes);
       } else {
         JdbcUtils.setPreparedStatementValue(pstmt, args);
       }
     }
     rs = pstmt.executeQuery();
     return ResultSetUtils.getObjectListUseReflection(type, rs);
   } catch (Exception e) {
     throw new RuntimeException(e);
   } finally {
     JdbcUtils.closeQuietly(conn, pstmt, rs);
   }
 }