Example usage for org.apache.commons.dbutils ResultSetHandler ResultSetHandler

List of usage examples for org.apache.commons.dbutils ResultSetHandler ResultSetHandler

Introduction

In this page you can find the example usage for org.apache.commons.dbutils ResultSetHandler ResultSetHandler.

Prototype

ResultSetHandler

Source Link

Usage

From source file:de.iritgo.aktario.jdbc.LoadObject.java

/**
 * Load an object.//from  w  ww  . j  av  a 2 s .  com
 *
 * @param dataSource The data source to load from.
 * @param typeId The type of the object to load.
 * @param uniqueId The unique id of the object to load.
 * @return The loaded object (already registered with the base registry).
 */
private DataObject load(final DataSource dataSource, final String typeId, long uniqueId) {
    DataObject object = null;

    try {
        QueryRunner query = new QueryRunner(dataSource);

        object = (DataObject) query.query("select * from " + typeId + " where id=" + uniqueId,
                new ResultSetHandler() {
                    public Object handle(ResultSet rs) throws SQLException {
                        rs.getMetaData();

                        if (rs.next()) {
                            try {
                                DataObject object = (DataObject) Engine.instance().getIObjectFactory()
                                        .newInstance(typeId);

                                object.setUniqueId(rs.getLong("id"));

                                for (Iterator i = object.getAttributes().entrySet().iterator(); i.hasNext();) {
                                    Map.Entry attribute = (Map.Entry) i.next();

                                    if (attribute.getValue() instanceof IObjectList) {
                                        loadList(dataSource, object,
                                                object.getIObjectListAttribute((String) attribute.getKey()));
                                    } else {
                                        try {
                                            if (!object.getAttribute((String) attribute.getKey()).getClass()
                                                    .equals(rs.getObject((String) attribute.getKey())
                                                            .getClass())) {
                                                System.out.println(
                                                        "********* Datastruct is not compatible with dataobject:"
                                                                + object.getTypeId() + ":" + attribute.getKey()
                                                                + " Types:"
                                                                + object.getAttribute(
                                                                        (String) attribute.getKey()).getClass()
                                                                + "!="
                                                                + rs.getObject((String) attribute.getKey())
                                                                        .getClass());
                                            }

                                            object.setAttribute((String) attribute.getKey(),
                                                    rs.getObject((String) attribute.getKey()));
                                        } catch (NullPointerException x) {
                                            System.out.println("LoadObject error: " + attribute.getKey());
                                        }
                                    }
                                }

                                return object;
                            } catch (NoSuchIObjectException ignored) {
                                Log.logError("persist", "LoadObject", "NoSuchIObjectException");
                            }
                        } else {
                        }

                        return null;
                    }
                });

        if (object != null) {
            Log.logVerbose("persist", "LoadObject", "Successfully loaded object " + typeId + ":" + uniqueId);
        } else {
            Log.logError("persist", "LoadObject", "Unable to find object " + typeId + ":" + uniqueId);
        }
    } catch (SQLException x) {
        Log.logError("persist", "LoadObject",
                "Error while loading the object " + typeId + ":" + uniqueId + ": " + x);
    }

    return object;
}

From source file:de.iritgo.aktario.buddylist.BuddyListManager.java

public void generateGroups(final User user) {
    final DataSource dataSource = (DataSource) CommandTools.performSimple("persist.GetDefaultDataSource");
    final BuddyList buddyList = addBuddyList(user);
    final ResourceService resources = Engine.instance().getResourceService();

    QueryRunner query = new QueryRunner(dataSource);
    try {/* www .ja v a2 s  .  com*/
        query.query(
                "select * from akteragroup left join akteragroupentry on akteragroup.id = akteragroupentry.groupid left join keelusers on keelusers.uniqid = akteragroupentry.userid where keelusers.username="
                        + "'" + user.getName() + "' and akteragroup.visible = true",
                new ResultSetHandler() {
                    public Object handle(ResultSet rs) throws SQLException {
                        while (rs.next()) {
                            try {
                                long groupId = rs.getLong("groupId");

                                String displayName = rs.getString("title");
                                if (StringTools.isTrimEmpty(displayName)) {
                                    displayName = rs.getString("name");
                                }
                                displayName = resources.getStringWithoutException(displayName);
                                final BuddyListGroup buddyListGroup = addBuddyListGroup(user, buddyList,
                                        groupId, displayName);

                                QueryRunner query2 = new QueryRunner(dataSource);

                                query2.query(
                                        "select * from akteragroup left join akteragroupentry on akteragroup.id = akteragroupentry.groupid "
                                                + "left join keelusers on keelusers.uniqid = akteragroupentry.userid where akteragroup.id="
                                                + groupId,
                                        new ResultSetHandler() {
                                            public Object handle(ResultSet rs) throws SQLException {
                                                while (rs.next()) {
                                                    try {
                                                        addParticipant(rs.getString("username"),
                                                                buddyListGroup);
                                                    } catch (Exception ignored) {
                                                        Log.logError("persist", "LoadObject",
                                                                "NoSuchIObjectException");
                                                        ignored.printStackTrace();
                                                    }
                                                }

                                                return null;
                                            }
                                        });
                            } catch (Exception x) {
                                Log.logError("plugin", "BuddyListManager.generateGroups", x.toString());
                            }
                        }

                        return null;
                    }
                });
    } catch (Exception x) {
        Log.logError("plugin", "BuddyListManager.generateGroups", x.toString());
    }
}

From source file:genepi.db.JdbcDataAccessObject.java

public List<Integer> batchGeneratedKeys(String sql, Object[][] params) throws SQLException {

    ResultSetHandler<List<Integer>> handler = new ResultSetHandler<List<Integer>>() {

        public List<Integer> handle(ResultSet rs) throws SQLException {
            List<Integer> identifiers = new ArrayList<Integer>();

            while (rs.next()) {
                identifiers.add(rs.getInt(1));
            }//from w  w  w  . ja v a  2 s. c  o  m

            return identifiers;
        }
    };

    return runner.insertBatch(sql, handler, params);
}

From source file:com.itdaoshi.dokeos.dao.UserDAObject.java

@Override
protected Long getNextPrimaryID() {

    QueryRunner run = new QueryRunner();
    ResultSetHandler h = new ResultSetHandler() {
        public Object handle(ResultSet rs) throws SQLException {
            if (!rs.next()) {
                return null;
            }//from w  ww .j a  v a  2  s.  c  o m

            ResultSetMetaData meta = rs.getMetaData();
            int cols = meta.getColumnCount();
            Object[] result = new Object[cols];

            for (int i = 0; i < cols; i++) {
                result[i] = rs.getObject(i + 1);
            }

            return result;
        }
    };
    try {
        Object[] result = (Object[]) run.query(conn, "SELECT MAX(user_id) FROM USER ", h);
        return (Long) result[0] + 1;
        // do something with the result
    } catch (Exception e) {
        e.printStackTrace();

    }

    return null;

}

From source file:io.apiman.manager.api.jpa.JpaStorageInitializer.java

/**
 * Called to initialize the database.//from ww w  .j  av a 2  s.  c  om
 */
@SuppressWarnings("nls")
public void initialize() {
    QueryRunner run = new QueryRunner(ds);
    Boolean isInitialized;

    try {
        isInitialized = run.query("SELECT * FROM apis", new ResultSetHandler<Boolean>() {
            @Override
            public Boolean handle(ResultSet rs) throws SQLException {
                return true;
            }
        });
    } catch (SQLException e) {
        isInitialized = false;
    }

    if (isInitialized) {
        System.out.println("============================================");
        System.out.println("Apiman Manager database already initialized.");
        System.out.println("============================================");
        return;
    }

    ClassLoader cl = JpaStorageInitializer.class.getClassLoader();
    URL resource = cl.getResource("ddls/apiman_" + dbType + ".ddl");
    try (InputStream is = resource.openStream()) {
        System.out.println("=======================================");
        System.out.println("Initializing apiman Manager database.");
        DdlParser ddlParser = new DdlParser();
        List<String> statements = ddlParser.parse(is);
        for (String sql : statements) {
            System.out.println(sql);
            run.update(sql);
        }
        System.out.println("=======================================");
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

From source file:esg.node.components.registry.RegistrationGleanerHelperDAO.java

public void init() {
    attributeGroupsResultSetHandler = new ResultSetHandler<Map<String, String>>() {
        public Map<String, String> handle(ResultSet rs) throws SQLException {
            HashMap<String, String> results = new HashMap<String, String>();
            String name = null;//from   w w w .j a  va  2s .  c om
            String desc = null;
            java.util.regex.Matcher typeMatcher = AtsWhitelistGleaner.TYPE_PATTERN.matcher("");
            while (rs.next()) {
                name = rs.getString(1);
                desc = rs.getString(2);
                typeMatcher.reset(name);
                if (typeMatcher.find()) {
                    log.trace("Skipping " + name);
                    continue;
                }
                results.put(name, desc);
            }
            return results;
        }
    };
}

From source file:com.gs.obevo.db.apps.reveng.CsvStaticDataWriter.java

private void writeTable(DbPlatform dbtype, PhysicalSchema schema, String tableName, File directory,
        MutableSet<String> updateTimeColumns, final CSVFormat csvFormat) {
    directory.mkdirs();// w  w w . ja va2  s .  com
    DaTable table = this.metadataManager.getTableInfo(schema.getPhysicalName(), tableName,
            new DaSchemaInfoLevel().setRetrieveTableColumns(true));
    if (table == null) {
        System.out.println("No data found for table " + tableName);
        return;
    }
    MutableList<String> columnNames = table.getColumns().collect(DaNamedObject.TO_NAME).toList();
    final String updateTimeColumnForTable = updateTimeColumns == null ? null
            : updateTimeColumns.detect(Predicates.in(columnNames));
    if (updateTimeColumnForTable != null) {
        columnNames.remove(updateTimeColumnForTable);
        System.out.println("Will mark " + updateTimeColumnForTable + " as an updateTimeColumn on this table");
    }

    final File tableFile = new File(directory, tableName + ".csv");
    final String selectSql = String.format("SELECT %s FROM %s%s", columnNames.makeString(", "),
            dbtype.getSchemaPrefix(schema), tableName);

    // using the jdbcTempate and ResultSetHandler to avoid sql-injection warnings in findbugs
    sqlExecutor.executeWithinContext(schema, new Procedure<Connection>() {
        @Override
        public void value(Connection conn) {
            sqlExecutor.getJdbcTemplate().query(conn, selectSql, new ResultSetHandler<Void>() {
                @Override
                public Void handle(ResultSet rs) throws SQLException {
                    CSVPrinter writer = null;
                    try {
                        FileWriter fw = new FileWriter(tableFile);
                        writer = new CSVPrinter(fw, csvFormat);

                        if (updateTimeColumnForTable != null) {
                            String metadataLine = String.format("//// METADATA %s=\"%s\"",
                                    TextMarkupDocumentReader.ATTR_UPDATE_TIME_COLUMN, updateTimeColumnForTable);
                            fw.write(metadataLine + "\n"); // writing using the FileWriter directly to avoid having the quotes
                            // delimited
                        }

                        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        DateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");

                        int columnCount = rs.getMetaData().getColumnCount();

                        // print headers
                        for (int i = 1; i <= columnCount; ++i) {
                            writer.print(rs.getMetaData().getColumnName(i));
                        }
                        writer.println();

                        while (rs.next()) {
                            for (int i = 1; i <= columnCount; ++i) {
                                Object object = rs.getObject(i);
                                if (object != null) {
                                    switch (rs.getMetaData().getColumnType(i)) {
                                    case Types.DATE:
                                        object = dateFormat.format(object);
                                        break;
                                    case Types.TIMESTAMP:
                                        object = dateTimeFormat.format(object);
                                        break;
                                    case Types.LONGVARCHAR:
                                    case Types.VARCHAR:
                                    case Types.CHAR:
                                        // escape the string text if declared so that the input CSV can also handle the escapes
                                        if (csvFormat.getEscapeCharacter() != null
                                                && object instanceof String) {
                                            object = ((String) object).replace(
                                                    "" + csvFormat.getEscapeCharacter(),
                                                    "" + csvFormat.getEscapeCharacter()
                                                            + csvFormat.getEscapeCharacter());
                                        }
                                        break;
                                    }
                                }
                                writer.print(object);
                            }

                            writer.println();
                        }

                        writer.flush();
                    } catch (IOException e) {
                        throw new RuntimeException(e);
                    } finally {
                        IOUtils.closeQuietly(writer);
                    }

                    return null;
                }
            });
        }
    });

    int blankFileSize = updateTimeColumnForTable == null ? 1 : 2;

    if (!tableFile.canRead() || FileUtilsCobra.readLines(tableFile).size() <= blankFileSize) {
        System.out.println("No data found for table " + tableName + "; will clean up file");
        FileUtils.deleteQuietly(tableFile);
    }
}

From source file:esg.gateway.service.ESGAccessLogServiceImpl.java

/**
   Initializes the service by setting up the database connection and result handling.
*///from   w ww.j  ava2  s. com
public void init() {
    Properties props = new Properties();
    props.setProperty("db.protocol", "jdbc:postgresql:");
    props.setProperty("db.host", "localhost");
    props.setProperty("db.port", "5432");
    props.setProperty("db.database", "esgcet");
    props.setProperty("db.user", "dbsuper");
    props.setProperty("db.password", "changeme");
    try {
        props.putAll(new ESGFProperties());
    } catch (IOException ex) {
        log.error(ex);
    }

    queryRunner = new QueryRunner(DatabaseResource.init(props.getProperty("db.driver", "org.postgresql.Driver"))
            .setupDataSource(props).getDataSource());

    resultSetHandler = new ResultSetHandler<List<String[]>>() {
        public List<String[]> handle(ResultSet rs) throws SQLException {
            ArrayList<String[]> results = new ArrayList<String[]>();
            String[] record = null;
            assert (null != results);

            ResultSetMetaData meta = rs.getMetaData();
            int cols = meta.getColumnCount();
            log.trace("Number of fields: " + cols);

            log.trace("adding column data...");
            record = new String[cols];
            for (int i = 0; i < cols; i++) {
                try {
                    record[i] = meta.getColumnLabel(i + 1) + "|" + meta.getColumnType(i + 1);
                } catch (SQLException e) {
                    log.error(e);
                }
            }
            results.add(record);

            for (int i = 0; rs.next(); i++) {
                log.trace("Looking at record " + (i + 1));
                record = new String[cols];
                for (int j = 0; j < cols; j++) {
                    record[j] = rs.getString(j + 1);
                    log.trace("gathering result record column " + (j + 1) + " -> " + record[j]);
                }
                log.trace("adding record ");
                results.add(record);
                record = null; //gc courtesy
            }
            return results;
        }
    };
    log.trace("initialization complete");
}

From source file:esg.node.components.metrics.MetricsUsersDAO.java

protected void buildResultSetHandler() {
    log.trace("Setting up result handler");
    metricsUsersHandler = new ResultSetHandler<List<MetricsUsersDAO.UserInfo>>() {
        public List<MetricsUsersDAO.UserInfo> handle(ResultSet rs) throws SQLException {
            List<MetricsUsersDAO.UserInfo> userInfos = new Vector<UserInfo>();
            UserInfo userInfo = new UserInfo();
            if (!rs.next())
                return userInfos;
            do {/*from  www  .  j a va 2  s . c  om*/
                userInfo.userid = rs.getString(1);
                userInfo.count = rs.getInt(2);
                userInfo.sum = rs.getLong(3);
                userInfo = new UserInfo();
            } while (rs.next());
            return userInfos;
        }
    };
}

From source file:esg.node.filters.UrlResolvingDAO.java

public void setDataSource(DataSource dataSource) {
    this.dataSource = dataSource;
    this.queryRunner = new QueryRunner(dataSource);
    this.resolutionResultSetHandler = new ResultSetHandler<String>() {
        public String handle(ResultSet rs) throws SQLException {
            if (!rs.next()) {
                return null;
            }//w  w w.j av  a 2s . c  om
            return rs.getString(1);
        }
    };

}