@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; } }); }
/** * 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); } }