通过jdbc模板,我的查询返回了多个列值。如何将它存储在Java中的地图中?
假设我有这样的查询:
SELECT Employee_Name, Employee_Age
FROM Employee
WHERE Employee_ID=1
在这个查询的结果中,我们得到了Employee Name和Employee_Age作为Employee_ID。如何将这个值存储在key为name和age的map中,value是我们从数据库中获取的值。
希望java8中的这个解决方案能够帮助:
jdbcTemplate.query("SELECT Employee_Name, Employee_Age FROM Employee WHERE Employee_ID=1", (ResultSet rs) -> {
HashMap<String,String> results = new HashMap<>();
while (rs.next()) {
results.put(rs.getString("Employee_Name"), rs.getString("Employee_Age"));
}
return results;
});
对于密钥,我们可以合并Employee_Name和Employee_Age,用' - '分隔,如:
rs.getString( “Employee_Name”)+ “ - ” + rs.getString( “Employee_Age”)
对于值,整个对象应该按照你说的那样放置:我们从数据库中得到什么。
rs.getObject(ⅰ)
jdbcTemplate.query("SELECT Employee_Name, Employee_Age FROM Employee WHERE Employee_ID=1", (ResultSet rs) -> {
HashMap<String,String> results = new HashMap<>();
int i = 0;
while (rs.next()) {
results.put(rs.getString("Employee_Name")+"-"+rs.getString("Employee_Age"), rs.getObject(i));
i++;
}
return results;
});