Example usage for org.springframework.jdbc.core RowCallbackHandler RowCallbackHandler

List of usage examples for org.springframework.jdbc.core RowCallbackHandler RowCallbackHandler

Introduction

In this page you can find the example usage for org.springframework.jdbc.core RowCallbackHandler RowCallbackHandler.

Prototype

RowCallbackHandler

Source Link

Usage

From source file:com.anyuan.thomweboss.persistence.jdbcimpl.user.UserDaoJdbcImpl.java

@Override
public List<User> listAll() {
    //        Connection conn = getConnection();
    final List<User> listUser = new ArrayList<User>();

    String sql = "select * from t_user";
    getJdbcTemplate().query(sql, new RowCallbackHandler() {

        @Override//from  w  w  w .  j a va 2 s. c  o  m
        public void processRow(ResultSet rs) throws SQLException {
            listUser.clear();
            User user = null;
            while (rs.next()) {
                user = new User();
                user.setId(rs.getLong("f_id"));
                user.setUsername(rs.getString("f_username"));
                user.setNickname(rs.getString("f_nickname"));
                listUser.add(user);

            }
            //                rs.close(); // ,  ResultSet ?
        }

    });

    //        try {
    //            Statement state = conn.createStatement();
    //            ResultSet rs = state.executeQuery(sql);
    //            listUser = new ArrayList<User>();
    //            User user = null;
    //            while (rs.next()) {
    //                System.out.println(rs.getString(3));
    //                user = new User();
    //                user.setId(rs.getLong("f_id"));
    //                user.setUsername(rs.getString("f_username"));
    //                user.setNickname(rs.getString("f_nickname"));
    //                listUser.add(user);
    //                
    //            }
    //            rs.close();
    //        } catch (SQLException e) {
    //            e.printStackTrace();
    //        } finally {
    //            try {
    //                conn.close();
    //            } catch (SQLException e) {
    //                e.printStackTrace();
    //            }
    //        }
    return listUser;
}

From source file:eionet.meta.dao.mysql.DataElementDAOImpl.java

/**
 * finds Common elements./*  w ww  .  j  a va 2  s  . c o m*/
 *
 * @param filter
 *            search filter
 * @return list of data elements
 */
private List<DataElement> executeCommonElementQuery(final DataElementsFilter filter) {
    Map<String, Object> params = new HashMap<String, Object>();
    StringBuilder sql = new StringBuilder();

    sql.append(
            "select de.DATAELEM_ID, de.IDENTIFIER, de.SHORT_NAME, de.REG_STATUS, de.DATE, de.TYPE, de.WORKING_USER, ");
    sql.append("a.VALUE as NAME ");
    sql.append("from DATAELEM de ");
    sql.append("LEFT JOIN (ATTRIBUTE a, M_ATTRIBUTE ma) ");
    sql.append(
            "ON (de.DATAELEM_ID=a.DATAELEM_ID AND a.PARENT_TYPE='E' AND ma.M_ATTRIBUTE_ID=a.M_ATTRIBUTE_ID ");
    sql.append("and ma.SHORT_NAME='Name') ");
    sql.append("where ");
    sql.append("de.PARENT_NS is null ");
    sql.append("and de.WORKING_COPY = 'N' ");

    // Filter parameters
    if (StringUtils.isNotEmpty(filter.getRegStatus())) {
        sql.append("and de.REG_STATUS = :regStatus ");
        params.put("regStatus", filter.getRegStatus());
    }
    if (StringUtils.isNotEmpty(filter.getType())) {
        sql.append("and de.TYPE = :type ");
        params.put("type", filter.getType());
    }
    if (StringUtils.isNotEmpty(filter.getShortName())) {
        sql.append("and de.SHORT_NAME like :shortName ");
        params.put("shortName", "%" + filter.getShortName() + "%");
    }
    if (StringUtils.isNotEmpty(filter.getIdentifier())) {
        sql.append("and de.IDENTIFIER like :identifier ");
        String like = "%";
        if (filter.isExactIdentifierMatch()) {
            like = "";
        }
        params.put("identifier", like + filter.getIdentifier() + like);
    }

    if (filter.isIncludeOnlyInternal()) {
        sql.append("and de.IDENTIFIER NOT like '%:%'");
    }
    // attributes
    for (int i = 0; i < filter.getAttributes().size(); i++) {
        Attribute a = filter.getAttributes().get(i);
        String idKey = "attrId" + i;
        String valueKey = "attrValue" + i;
        if (StringUtils.isNotEmpty(a.getValue())) {
            sql.append("and ");
            sql.append("de.DATAELEM_ID in ( ");
            sql.append("select a.DATAELEM_ID from ATTRIBUTE a WHERE ");
            sql.append("a.M_ATTRIBUTE_ID = :" + idKey + " AND a.VALUE like :" + valueKey
                    + " AND a.PARENT_TYPE = :parentType ");
            sql.append(") ");
        }
        params.put(idKey, a.getId());
        String value = "%" + a.getValue() + "%";
        params.put(valueKey, value);
        params.put("parentType", DElemAttribute.ParentType.ELEMENT.toString());
    }

    sql.append("order by de.IDENTIFIER asc, de.DATAELEM_ID desc");

    // LOGGER.debug("SQL: " + sql.toString());

    final List<DataElement> dataElements = new ArrayList<DataElement>();

    getNamedParameterJdbcTemplate().query(sql.toString(), params, new RowCallbackHandler() {
        DataElement de;
        String curElmIdf;

        @Override
        public void processRow(ResultSet rs) throws SQLException {
            // int elmID = rs.getInt("de.DATAELEM_ID");
            String elmIdf = rs.getString("de.IDENTIFIER");
            // skip non-existing elements, ie trash from some erroneous situation
            if (elmIdf == null) {
                return;
            }

            // the following if block skips non-latest
            if (curElmIdf != null && elmIdf.equals(curElmIdf)) {
                if (!filter.isIncludeHistoricVersions()) {
                    return;
                }
            } else {
                curElmIdf = elmIdf;
            }

            de = new DataElement();
            de.setId(rs.getInt("de.DATAELEM_ID"));
            de.setShortName(rs.getString("de.SHORT_NAME"));
            de.setStatus(rs.getString("de.REG_STATUS"));
            de.setType(rs.getString("de.TYPE"));
            de.setModified(new Date(rs.getLong("de.DATE")));
            de.setWorkingUser(rs.getString("de.WORKING_USER"));
            de.setIdentifier(rs.getString("de.IDENTIFIER"));

            de.setName(rs.getString("NAME"));
            dataElements.add(de);
        }
    });

    return dataElements;
}

From source file:data.DefaultExchanger.java

public void exportData(String dbName, String catalogName, final JsonGenerator generator,
        JdbcTemplate jdbcTemplate) throws IOException {
    generator.writeFieldName(getTable());
    generator.writeStartArray();/*from  www .  j  av  a 2 s .co  m*/
    final int[] rowCount = { 0 };
    jdbcTemplate.query(getSelectSql(), new RowCallbackHandler() {
        @Override
        public void processRow(ResultSet rs) throws SQLException {
            try {
                generator.writeStartObject();
                setNode(generator, rs);
                generator.writeEndObject();
                rowCount[0]++;
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException(e);
            }
        }
    });
    generator.writeEndArray();
    play.Logger.info("exported {{}} {}", rowCount[0], getTable());

    if (hasSequence()) {
        String sequenceName = sequenceName();
        long sequenceValue = 0;
        if (dbName.equalsIgnoreCase("MySQL")) {
            String sql = String.format("SELECT `AUTO_INCREMENT` FROM INFORMATION_SCHEMA.TABLES "
                    + "WHERE TABLE_SCHEMA = '%s' AND TABLE_NAME = '%s'", catalogName, getTable());
            sequenceValue = jdbcTemplate.queryForObject(sql, Long.class);
        } else if (dbName.equalsIgnoreCase("H2")) {
            sequenceValue = jdbcTemplate.queryForObject("CALL NEXT VALUE FOR " + sequenceName, Long.class);
        }
        generator.writeFieldName(sequenceName);
        generator.writeNumber(sequenceValue);
        play.Logger.info("exported sequence {{}}", sequenceName());
    }
}

From source file:org.string_db.jdbc.Postgres2HSQLDB.java

void dumpIndices(String schema, String table, final StringBuilder result) {
    /**/*from w  w w  . j  a  v  a 2  s . c  o m*/
     index metadata be obtained from jdbc connection:
     <pre>
     final DataSource dataSource = ctx.getBean(DataSource.class);
     final Jdbc4Connection connection = (Jdbc4Connection) dataSource.getConnection();
     final DatabaseMetaData metaData = connection.getMetaData();
     final ResultSet indexInfo = metaData.getIndexInfo(connection.getCatalog(), "items", "proteins", false, false);
     while(indexInfo.next()) {
     for (int i = 0; i < indexInfo.getMetaData().getColumnCount(); i++) {
     System.out.println(indexInfo.getObject(i + 1));
     }
     }
     </pre>
     *
     */
    jdbcTemplate.query(selectIndexDef, new Object[] { schema, table }, new RowCallbackHandler() {
        @Override
        public void processRow(ResultSet rs) throws SQLException {
            String def = rs.getString(1);
            if (def.contains("USING gist")) {
                //skip GIST..
                return;
            }
            if (def.contains("varchar_pattern_ops")) {
                //not supported by hsqldb
                return;
            }
            if (def.contains("(upper(") || def.contains("(lower(")) {
                return;
            }
            result.append(def.replace("USING btree", "")).append(";\n");

        }
    });
}

From source file:uk.org.rbc1b.roms.db.reference.JDBCReferenceDao.java

private Map<Integer, String> findReferenceIdValues(String sql) {

    final Map<Integer, String> resultMap = new LinkedHashMap<Integer, String>();

    this.jdbcTemplate.query(sql, new RowCallbackHandler() {
        @Override// w w  w. ja  va2  s  .c  om
        public void processRow(ResultSet rs) throws SQLException {
            resultMap.put(rs.getInt("id"), rs.getString("value"));
        }
    });
    return resultMap;
}

From source file:com.oracle2hsqldb.dialect.Oracle9Dialect.java

/**
 * Superclass's implementation does not work. Seems that the Oracle 9i driver does not support DatabaseMetaData.getPrimaryKeys() well.
 *//*from   w  ww . j  a v  a 2 s. co m*/
public Iterator getPrimaryKeys(DataSource dataSource, String schemaName) {
    final Map byTableName = new HashMap();
    new JdbcTemplate(dataSource).query("SELECT ucc.column_name, ucc.constraint_name, ucc.table_name "
            + "FROM user_constraints uc INNER JOIN user_cons_columns ucc ON ucc.constraint_name=uc.constraint_name "
            + "WHERE uc.constraint_type='P'", new RowCallbackHandler() {
                public void processRow(ResultSet columns) throws SQLException {
                    if (log.isDebugEnabled())
                        log.debug("Reading primary key:column " + columns.getString("CONSTRAINT_NAME") + ":"
                                + columns.getString("COLUMN_NAME"));
                    String tableName = columns.getString("TABLE_NAME");
                    if (!byTableName.containsKey(tableName)) {
                        byTableName.put(tableName,
                                new PrimaryKey.Spec(tableName, columns.getString("CONSTRAINT_NAME")));
                    }
                    ((PrimaryKey.Spec) byTableName.get(tableName))
                            .addColumnName(columns.getString("COLUMN_NAME"));

                }
            });
    return byTableName.values().iterator();
}

From source file:com.pactera.edg.am.metamanager.extractor.dao.impl.MetaModelDaoImpl.java

public void genAttrs(MMMetaModel metaModel) {
    String sql = super.getSql("QUERY_METAMODEL_ATTRS");

    final Map<String, String> mAttrs = new HashMap<String, String>();
    super.getJdbcTemplate().query(sql, new Object[] { metaModel.getCode() }, new RowCallbackHandler() {

        public void processRow(ResultSet rs) throws SQLException {
            mAttrs.put(rs.getString("ATT_CODE"), rs.getString("ATT_STORE"));

        }/* ww w. j a  v  a  2 s.co  m*/
    });

    metaModel.setMAttrs(mAttrs);
}

From source file:eionet.meta.dao.mysql.TableDAOImpl.java

/**
 * {@inheritDoc}//  w ww .j  a  v  a 2  s. c o m
 */
@Override
public List<DataSetTable> listForDatasets(List<DataSet> datasets) {
    StringBuilder sql = new StringBuilder();

    int nameAttrId = getNameAttributeId();

    Map<String, Object> params = new HashMap<String, Object>();
    params.put("nameAttrId", nameAttrId);
    params.put("parentType", "T");

    sql.append(
            "select dst.TABLE_ID, dst.SHORT_NAME, ds.REG_STATUS, dst.IDENTIFIER, ds.IDENTIFIER, ds.DATASET_ID, ");
    sql.append(
            "(select VALUE from ATTRIBUTE where M_ATTRIBUTE_ID = :nameAttrId and DATAELEM_ID = dst.TABLE_ID ");
    sql.append("and PARENT_TYPE = :parentType limit 1 ) as fullName ");
    sql.append("from DS_TABLE as dst ");
    sql.append("inner join DST2TBL as dst2ds on dst2ds.TABLE_ID = dst.TABLE_ID ");
    sql.append("inner join DATASET as ds on dst2ds.DATASET_ID = ds.DATASET_ID ");
    sql.append("where ds.DELETED is null ");
    sql.append("and ds.WORKING_COPY = 'N' ");

    //set dataset filters
    if (datasets != null && datasets.size() > 0) {
        sql.append("and ds.DATASET_ID IN( :datasetIds ) ");
        params.put("datasetIds", CollectionUtils.collect(datasets, new BeanToPropertyValueTransformer("id")));
    }

    sql.append("order by ds.IDENTIFIER asc, ds.DATASET_ID desc, dst.IDENTIFIER asc, dst.TABLE_ID desc");

    final List<DataSetTable> resultList = new ArrayList<DataSetTable>();

    getNamedParameterJdbcTemplate().query(sql.toString(), params, new RowCallbackHandler() {

        @Override
        public void processRow(ResultSet rs) throws SQLException {
            DataSetTable table = new DataSetTable();
            table.setId(rs.getInt("dst.TABLE_ID"));
            table.setShortName(rs.getString("dst.SHORT_NAME"));
            table.setName(rs.getString("fullName"));
            table.setDataSetStatus(rs.getString("ds.REG_STATUS"));

            // skip tables that do not actually exist (ie trash from some erroneous situation)
            if (StringUtils.isEmpty(rs.getString("dst.IDENTIFIER"))) {
                return;
            }
            table.setIdentifier(rs.getString("dst.IDENTIFIER"));
            resultList.add(table);
        }
    });
    return resultList;
}

From source file:uk.org.rbc1b.roms.db.reference.JDBCReferenceDao.java

private Map<String, String> findReferenceCodeValues(String sql) {

    final Map<String, String> resultMap = new LinkedHashMap<String, String>();

    this.jdbcTemplate.query(sql, new RowCallbackHandler() {
        @Override//from www .ja  v  a  2  s  .c o  m
        public void processRow(ResultSet rs) throws SQLException {
            resultMap.put(rs.getString("code"), rs.getString("value"));
        }
    });
    return resultMap;
}

From source file:org.brickhouse.impl.SqlTable.java

@Override
public int deleteAll(final Filter filter) {
    final MutableInt count = new MutableInt();

    jt.query(select, new RowCallbackHandler() {
        @Override//from  ww  w.ja v a 2  s.c o  m
        public void processRow(ResultSet rs) throws SQLException {
            HMap map = toMap(rs.getString(1));
            if (filter.include(map, pather))
                count.add(jt.update(delete, map.id().getId()));
        }
    });

    for (TableListener l : listeners)
        l.deleteAll(filter, count.intValue());

    return count.intValue();
}