Spring Boot如何使用jdbcTemplate转成自定义JSON/OBJECT

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

多年来我一直在使用 Java 进行编程。到目前为止,我还没有在后端或前端区域使用任何框架。我想在未来改变这一点,因为我认为 Spring Boot 的很多安全特性。

现在遇到一个问题,不知道怎么解决。我在数据库中有一个包含客户和项目数据的表。

数据库中的表:

顾客 客户描述 文章 文章名称
顾客1 Customer1Des 第一条 电话
顾客1 Customer1Des 第二条 笔记本
顾客2 Customer2Des 第一条 电话
顾客3 Customer2Des 第一条 电话

我的查询示例:

SELECT * FROM ORDER BY CUSTOMER!

我需要的JSON:

{
  Customer: "Customer1",
  CustomerDescription: "Customer1Des"
  ArticlesLIST: [
    {
       Articlenumber: "Article1",
       ArticleName: "Phone"
    },
    {...}
  ]
},
{
  Customer: "Customer2",
  CustomerDescription: "Customer2Des"
  Articles: [
    {
       Articlenumber: "Article2",
       ArticleName: "Notebook"
    },
    {...}
  ]
},

在我没有框架的旧结构中,这很容易做到。我获取结果集 -> 暂时获取它并执行我的逻辑来生成这个 JSON。

String lastcustomer="";
while(rs.nex()){
  //My Logic to build JSONObjects and JSONArrays ...

  if(!lastcustomer.equals(rs.getString("Customer"){
    //Look if next Customer Name is not same as before so generate a new JSONObject and JSONArray 
  }

  ... //JSON Generate
  lastcustomer = rs.getString("Customer");
}

但是在 SPRING BOOT 中我该怎么做呢?我将 jdbcTemplate 用于 SQL 语句...问题是:无法拆分数据库结构。在 jdbcTemplate 中,我没有得到整个结果集,我只能捕获 next() 元素。

不幸的是我找不到线索......

sql spring spring-boot resultset jdbctemplate
1个回答
0
投票

jdbcTemplate
不在格式之间转换, 它严格用于执行查询。 使用工具在对象(或对象列表)和 JSON 之间进行转换。 我喜欢
Jackson
(这里是 Baeldung Jackson 教程链接。 还有其他的, 流行的工具包括, 但不限于, Gson 和 SimpleJson.

获取成功查询的输出并运行它

ObjectMapper.writeValueAsString
将其转换为 JSON.

另一种方法是让 Spring Boot 为您执行翻译。 实现此目的的一种方法是让您的 RestController 处理程序方法返回

ResponseEntity<List<TypeOutputByYourQuery>>
和 Spring Boot 将为您执行转换。

© www.soinside.com 2019 - 2024. All rights reserved.