通过jdbc模板,多列值即将到来,我如何将它存储在java中的地图中

问题描述 投票:0回答:2

通过jdbc模板,我的查询返回了多个列值。如何将它存储在Java中的地图中?

假设我有这样的查询:

SELECT Employee_Name, Employee_Age 
FROM Employee 
WHERE Employee_ID=1

在这个查询的结果中,我们得到了Employee Name和Employee_Age作为Employee_ID。如何将这个值存储在key为name和age的map中,value是我们从数据库中获取的值。

java spring jdbc jdbctemplate
2个回答
0
投票

希望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;
});

0
投票

对于密钥,我们可以合并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;
});
© www.soinside.com 2019 - 2024. All rights reserved.