java - 用于检索多行的 JDBCTemplate queryForMap

标签 java spring oracle10g jdbctemplate spring-3

如果查询返回多行,我可以使用 queryForMap 吗?

对于单行,以下代码可以正常工作。

public Map<String, Object> retrieveMultipleRowsColumns(String deptName){
    return jdbcTemplate.queryForMap("SELECT DEPT_ID,DEPT_NAME FROM DEPT WHERE DEPT_NAME = ?", deptName);
}

如何修改多行?

最佳答案

我知道这已经很老了,但是如果您正在寻找 map ,有一种更简单的方法可以做到这一点。

只需实现 ResultSetExtractor 接口(interface)即可定义要返回的类型。下面是一个如何使用它的例子。您将手动映射它,但对于简单的 map ,它应该很简单。

jdbcTemplate.query("select string1,string2 from table where x=1", new ResultSetExtractor<Map>(){
    @Override
    public Map extractData(ResultSet rs) throws SQLException,DataAccessException {
        HashMap<String,String> mapRet= new HashMap<String,String>();
        while(rs.next()){
            mapRet.put(rs.getString("string1"),rs.getString("string2"));
        }
        return mapRet;
    }
});

这将为您提供具有多行(无论您的查询返回多少)的 Map 返回类型,而不是 Map 列表。您可以在此处查看 ResultSetExtractor 文档:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/ResultSetExtractor.html

关于java - 用于检索多行的 JDBCTemplate queryForMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24221187/

相关文章:

Java 图形用户界面验证

java - 无法从另一个类获取文本以在另一个类上打印(菜鸟)

java - Spring getJdbcTemplate().update 插入动态对象

java - 使用 Spring 使用 JPA/Hibernate 向用户添加 Vehicle 的最简单方法

java - 如何使用 Servlet 和 JSP 显示 PDF 文档?

database - 如何执行以下查询?

java - 如何使用 jdatechooser 从 mysql 数据库中保存和检索空日期

java - 将 table 放置在 table 中的 Actor (LIBGDX)

java - @Valid 和自定义验证注释 - 何时进行验证?

oracle10g - 从 OS X 连接到 Vagrant box 上的 Oracle