gpt4 book ai didi

java - 如何使用Springboot REST从数据库下载记录

转载 作者:行者123 更新时间:2023-12-01 22:32:16 24 4
gpt4 key购买 nike

我是 Java 新手,我正在构建一个 Spring Boot REST API 资源,以根据传递的 ID 列表下载压缩文件。压缩文件应包含来自数据库的 ID 记录。 Mysql 数据库有多条具有唯一 ID 的记录。因此,我构建的资源应该返回一个 zip 文件,其中包含作为参数传递的各种 id。

例如:

数据库表“消息”:

ID|消息详细信息|时间戳|有效负载|配置

1|测试消息|2019-08-28 16:00:25.0003470|这是测试负载|subscriber1:test,subscriber2:test1

2|测试消息1|2019-08-20 12:46:40.0007520|这是测试负载1|subscriber001:test,subscriber002:test1

如果我只传递 1 作为 ID,它应该只将文件下载到本地计算机上,而不是压缩。

如果我在 url 中传递 1 和 2 作为参数,它应该返回包含两条记录的 zip 文件。

目前我已经构建了一个资源,它将把所有记录从数据库下载到我的本地。我不知道如何在传递单个 ID 时下载它,以及在传递多个 ID 时如何下载 ZIP。

这是代码片段:

任何帮助将不胜感激。谢谢

@GetMapping("/file/save")
@CrossOrigin(origins = "*")
public ResponseEntity<byte[]> download() throws Exception {
List<messageEntity> messageRecord = messageRepository.findAll();
ObjectMapper objectMapper = new ObjectMapper();
String xml = objectMapper.writeValueAsString(messageRecord);
byte[] stringtobytes= xml.getBytes();
String fileName = "file.xml";
HttpHeaders respHeaders = new HttpHeaders();
respHeaders.setContentLength(stringtobytes.length);
respHeaders.setContentType(MediaType.TEXT_XML);
respHeaders.setCacheControl("must-revalidate, post-check=0, pre-check=0");
respHeaders.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName);
return new ResponseEntity<byte[]>(stringtobytes, respHeaders, HttpStatus.OK);
}

最佳答案

关于java - 如何使用Springboot REST从数据库下载记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58544628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com