Example usage for javax.sql.rowset CachedRowSet next

List of usage examples for javax.sql.rowset CachedRowSet next

Introduction

In this page you can find the example usage for javax.sql.rowset CachedRowSet next.

Prototype

boolean next() throws SQLException;

Source Link

Document

Moves the cursor forward one row from its current position.

Usage

From source file:org.openecomp.sdnc.uebclient.SdncUebCallback.java

private void cleanUpExistingToscaData(String tableName, String keyName, String keyValue) throws IOException {

    if (jdbcDataSource == null) {
        setJdbcDataSource();/* w ww.  ja  v a2s.c o m*/
    }
    try {
        int rowCount = 0;
        CachedRowSet data = jdbcDataSource
                .getData("SELECT * from " + tableName + " where " + keyName + " = " + keyValue + ";", null, "");
        while (data.next()) {
            rowCount++;
        }
        if (rowCount != 0) {
            LOG.info("cleanUpExistingToscaData: " + keyValue);
            jdbcDataSource.writeData("DELETE from " + tableName + " where " + keyName + " = " + keyValue + ";",
                    null, null);
        }

    } catch (SQLException e) {
        LOG.error("Could not clean up existing " + tableName + " for " + keyValue, e);
    }

}

From source file:com.telefonica.iot.cygnus.backends.mysql.MySQLBackendImpl.java

@Override
public void capRecords(String dbName, String tableName, long maxRecords)
        throws CygnusRuntimeError, CygnusPersistenceError {
    // Get the records within the table
    CachedRowSet records = select(dbName, tableName, "*");

    // Get the number of records
    int numRecords = 0;

    try {/*from w w  w  .j  ava  2  s . c  o m*/
        if (records.last()) {
            numRecords = records.getRow();
            records.beforeFirst();
        } // if
    } catch (SQLException e) {
        throw new CygnusRuntimeError("Data capping error", "SQLException", e.getMessage());
    } // try catch

    // Get the reception times (they work as IDs) for future deletion
    // to-do: refactor after implementing
    // https://github.com/telefonicaid/fiware-cygnus/issues/1371
    String filters = "";

    try {
        if (numRecords > maxRecords) {
            for (int i = 0; i < (numRecords - maxRecords); i++) {
                records.next();
                String recvTime = records.getString("recvTime");

                if (filters.isEmpty()) {
                    filters += "recvTime='" + recvTime + "'";
                } else {
                    filters += " or recvTime='" + recvTime + "'";
                } // if else
            } // for
        } // if

        records.close();
    } catch (SQLException e) {
        throw new CygnusRuntimeError("Data capping error", "SQLException", e.getMessage());
    } // try catch

    if (filters.isEmpty()) {
        LOGGER.debug("No records to be deleted");
    } else {
        LOGGER.debug("Records must be deleted (dbName=" + dbName + ",tableName=" + tableName + ", filters="
                + filters + ")");
        delete(dbName, tableName, filters);
    } // if else
}

From source file:com.telefonica.iot.cygnus.backends.mysql.MySQLBackendImpl.java

@Override
public void expirateRecordsCache(long expirationTime) throws CygnusRuntimeError, CygnusPersistenceError {
    // Iterate on the cached resource IDs
    cache.startDbIterator();/*from www.  j a va 2s.  c  o  m*/

    while (cache.hasNextDb()) {
        String dbName = cache.nextDb();
        cache.startTableIterator(dbName);

        while (cache.hasNextTable(dbName)) {
            String tableName = cache.nextTable(dbName);

            // Get the records within the table
            CachedRowSet records = select(dbName, tableName, "*");

            // Get the number of records
            int numRecords = 0;

            try {
                if (records.last()) {
                    numRecords = records.getRow();
                    records.beforeFirst();
                } // if
            } catch (SQLException e) {
                try {
                    records.close();
                } catch (SQLException e1) {
                    LOGGER.debug("Can't close CachedRowSet.");
                }
                throw new CygnusRuntimeError("Data expiration error", "SQLException", e.getMessage());
            } // try catch

            // Get the reception times (they work as IDs) for future
            // deletion
            // to-do: refactor after implementing
            // https://github.com/telefonicaid/fiware-cygnus/issues/1371
            String filters = "";

            try {
                for (int i = 0; i < numRecords; i++) {
                    records.next();
                    String recvTime = records.getString("recvTime");
                    long recordTime = CommonUtils.getMilliseconds(recvTime);
                    long currentTime = new Date().getTime();

                    if (recordTime < (currentTime - (expirationTime * 1000))) {
                        if (filters.isEmpty()) {
                            filters += "recvTime='" + recvTime + "'";
                        } else {
                            filters += " or recvTime='" + recvTime + "'";
                        } // if else
                    } else {
                        break;
                    } // if else
                } // for
            } catch (SQLException e) {
                throw new CygnusRuntimeError("Data expiration error", "SQLException", e.getMessage());
            } catch (ParseException e) {
                throw new CygnusRuntimeError("Data expiration error", "ParseException", e.getMessage());
            } // try catch

            if (filters.isEmpty()) {
                LOGGER.debug("No records to be deleted");
            } else {
                LOGGER.debug("Records must be deleted (dbName=" + dbName + ",tableName=" + tableName
                        + ", filters=" + filters + ")");
                delete(dbName, tableName, filters);
            } // if else
        } // while
    } // while
}

From source file:org.openecomp.sdnc.sli.resource.sql.SqlResource.java

public void saveCachedRowSetToCtx(CachedRowSet results, SvcLogicContext ctx, String prefix,
        DbLibService dblibSvc) throws SQLException {
    if (ctx != null) {
        if ((prefix != null) && prefix.endsWith("[]")) {
            // Return an array.
            String pfx = prefix.substring(0, prefix.length() - 2);
            int idx = 0;
            do {/*w ww .j  av  a 2  s.c  o m*/
                ResultSetMetaData rsMeta = results.getMetaData();
                int numCols = rsMeta.getColumnCount();

                for (int i = 0; i < numCols; i++) {
                    String colValue = null;
                    String tableName = rsMeta.getTableName(i + 1);
                    if (rsMeta.getColumnType(i + 1) == java.sql.Types.VARBINARY) {
                        colValue = decryptColumn(tableName, rsMeta.getColumnName(i + 1),
                                results.getBytes(i + 1), dblibSvc);
                    } else {
                        colValue = results.getString(i + 1);
                    }
                    LOG.debug("Setting " + pfx + "[" + idx + "]."
                            + rsMeta.getColumnLabel(i + 1).replaceAll("_", "-") + " = " + colValue);
                    ctx.setAttribute(pfx + "[" + idx + "]." + rsMeta.getColumnLabel(i + 1).replaceAll("_", "-"),
                            colValue);
                }
                idx++;
            } while (results.next());
            LOG.debug("Setting " + pfx + "_length = " + idx);
            ctx.setAttribute(pfx + "_length", "" + idx);
        } else {
            ResultSetMetaData rsMeta = results.getMetaData();
            int numCols = rsMeta.getColumnCount();

            for (int i = 0; i < numCols; i++) {
                String colValue = null;
                String tableName = rsMeta.getTableName(i + 1);
                if ("VARBINARY".equalsIgnoreCase(rsMeta.getColumnTypeName(i + 1))) {
                    colValue = decryptColumn(tableName, rsMeta.getColumnName(i + 1), results.getBytes(i + 1),
                            dblibSvc);
                } else {
                    colValue = results.getString(i + 1);
                }
                if (prefix != null) {
                    LOG.debug("Setting " + prefix + "." + rsMeta.getColumnLabel(i + 1).replaceAll("_", "-")
                            + " = " + colValue);
                    ctx.setAttribute(prefix + "." + rsMeta.getColumnLabel(i + 1).replaceAll("_", "-"),
                            colValue);
                } else {
                    LOG.debug(
                            "Setting " + rsMeta.getColumnLabel(i + 1).replaceAll("_", "-") + " = " + colValue);
                    ctx.setAttribute(rsMeta.getColumnLabel(i + 1).replaceAll("_", "-"), colValue);
                }
            }
        }
    }
}