通过Spring MVC从表中查询数据并将其转换为所需的JSON格式

时间:2019-06-06 09:17:45

标签: java mysql json spring-boot model-view-controller

我想从下表中获取数据-


+------------+----------------+------------+
|     No     |    trackingNo  | customerNo |
+------------+----------------+------------+
| 055162     | 78Q6156        |     281478 |
| 055161     | 78Q6293        |     281478 |
| 0551629    | 78Q68431       |     281480 |
| 055131870  | 78Q63189       |     281480 |
| 055131870  | 78Q625771      |     281480 |
+------------+----------------+------------+


通过按customerNo分组,我必须查询数据,然后通过MVC API获取数据并将其转换为以下JSON格式。 如何通过MySQL查询该表中的数据。

预期的JSON格式输出为

  {
  [
   {
    "customerNo": 281478,
    "details": [
      {
        "No": "055162",
        "trackingNo": "78Q6156" 
      },
      {
        "No": "055161",
        "trackingNo": "78Q6293"
      }
     ]
    },
    {
    "customerNo": 281480,
    "details": [
      {
        "No": "0551629",
        "trackingNo": "78Q68431"
      },
      {
        "No": "055131870",
        "trackingNo": "78Q63189"
      },
      {
        "No": "055131870",
        "trackingNo": "78Q625771"
      }
     ]
    }
  ]
}

2 个答案:

答案 0 :(得分:0)

您必须使用必须通过application.properties文件配置的spring jpa到spring boot项目中。 但是,最后,让您学习此方法的最佳方法是在github上选择spring-boot petclinic项目:Spring-petclinic

答案 1 :(得分:0)

似乎您应该更改数据库架构。而不是将所有这些都放在一个表中,您应该有一个客户表,其中包含complete_videos作为ID,并可能包含一些其他字段来描述您的客户。 例如,您可以使用字段customerNo作为ID和No创建另一个名为details的表。此外,您还需要在此表中将trackingNo作为外键。

现在,您可以使用customerId@ManyToOne注释来利用springs功能连接父实体和子实体。 基本上,您将您的客户实体作为父实体,并且与详细信息实体具有一对多的关系。 在详细信息实体中,您将与客户实体具有多对一关系。

由于这是一个相当广泛的问题,我可以给您这些提示,并找出自己的代码编写方法。