从数据库中提取数据并构建自定义json

时间:2019-01-28 20:49:03

标签: java mysql

我有一张表,上面有示例数据->

column1 column2 
1       A
1       B
2       C
2       D

我想创建一个返回此端点的端点->

{
  "1" : {
    "column1": "1"
    "column2": [A, B]
  },
  "2" : {
    "column1": "2"
    "column2": [C, D]
  }
}

最有效的方法是什么?

我当前的方法:

  1. 查询select * from table. //this.jdbcTemplate.queryForList(sql)
  2. 迭代并构建所需的任何蛮力。

    public Map formatData(List data) {
       // iterating over the list and logic to construct the required map.
    }
    

1 个答案:

答案 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的处理),但应进行检查。