我有一张表,上面有示例数据->
column1 column2
1 A
1 B
2 C
2 D
我想创建一个返回此端点的端点->
{
"1" : {
"column1": "1"
"column2": [A, B]
},
"2" : {
"column1": "2"
"column2": [C, D]
}
}
最有效的方法是什么?
我当前的方法:
select * from table.
//this.jdbcTemplate.queryForList(sql)
迭代并构建所需的任何蛮力。
public Map formatData(List data) {
// iterating over the list and logic to construct the required map.
}
答案 0 :(得分:0)
可以对查询结果进行迭代调整。
1。仅使用select distinct(c1) from t
键
2。使用select distinct(c2) from t where t.c1=key
直接迭代获取值
从db复制,而不是遍历所有*
和放置条件
public Map formatData(List keys) {
// iterating over the list and logic to construct the required map.
for(String key:keys)
{
List values = query_2(key);
map.put(key, values)
}
}
由于可能仅从db获取“最终结果”,所以速度可能更快(但Java代码中没有raw_list的处理),但应进行检查。