List of usage examples for org.apache.commons.dbutils ResultSetHandler ResultSetHandler
ResultSetHandler
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); } }; }