多年来我一直在使用 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() 元素。
不幸的是我找不到线索......
jdbcTemplate
不在格式之间转换,
它严格用于执行查询。
使用工具在对象(或对象列表)和 JSON 之间进行转换。
我喜欢 Jackson
(这里是 Baeldung Jackson 教程链接。
还有其他的,
流行的工具包括,
但不限于,
Gson 和 SimpleJson.
获取成功查询的输出并运行它
ObjectMapper.writeValueAsString
将其转换为 JSON.
另一种方法是让 Spring Boot 为您执行翻译。 实现此目的的一种方法是让您的 RestController 处理程序方法返回
ResponseEntity<List<TypeOutputByYourQuery>>
和 Spring Boot 将为您执行转换。