Spring JDBC Query添加到map

时间:2014-06-10 15:17:28

标签: java spring spring-mvc jdbc

我正在使用Spring JDBC Framework(like here)从数据库中获取两列。我使用'Mapper'来实现'RowMapper'类,我执行这样的查询:

List<Entity> rows = template.query(sql, new EntityMapper());

这是我的Mapper类:

public class EntityMapper implements RowMapper<Entity> {

@Override
public Entity mapRow(ResultSet rs, int rowNum) throws SQLException {
    Entity entity = new Entity();
    entity.setID(rs.getString("ID"));
    entity.setAccount(rs.getString("ACCOUNT"));

    return entity;
}

我想将它们存储到我在同一个类中创建的<List> - Map,而不是将查询结果存储到accountsById中。我希望将进入Map的ID作为我的密钥,以便我可以使用getID()

获取Id
 public List<String> getID() {
    if (accountsByID.isEmpty()) {
        return Collections.EMPTY_LIST;
    } else {
        return new ArrayList<String>(accountsByID.keySet());
    }
}

如何在春季将查询行存储到地图中并将ID设置为键,值为account

1 个答案:

答案 0 :(得分:0)

queryForList返回LinkedHashMap对象列表。

为了获得地图我们需要投射queryForList方法的结果,如下所示

       List list = template.queryForList(...);
        for (Object o : list) {
           Map m = (Map) o;
           <your code here which uses Map objects>
        }

有关方法 here

的更多信息