use*_*944 15 java spring 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);
}
Run Code Online (Sandbox Code Playgroud)
如何修改多行?
小智 21
我知道这很老了,但是如果你正在寻找一张地图,有一种更简单的方法可以做到这一点.
只需实现ResultSetExtractor接口即可定义要返回的类型.以下是如何使用它的示例.您将手动映射它,但对于简单的映射,它应该是直截了当的.
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;
}
});
Run Code Online (Sandbox Code Playgroud)
这将为您提供返回类型的Map,该Map具有多行(无论您的查询返回多少),而不是地图列表.您可以在此处查看ResultSetExtractor文档:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/ResultSetExtractor.html
Joh*_*lly 18
使用queryForList 请参阅javadoc以获取完整详细信息.它回来了List<Map<String,Object>>
public List<Map<String, Object>> retrieveMultipleRowsColumns(String deptName){
return jdbcTemplate.queryForList("SELECT DEPT_ID,DEPT_NAME FROM DEPT WHERE DEPT_NAME = ?", deptName);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40272 次 |
| 最近记录: |