Spring Boot 实现将数据查询结果写入文本文件并将其作为 HTTP 响应返回的示例
时间: 2024-03-03 11:50:21 浏览: 50
Spring Boot实现图片上传/加水印一把梭操作实例代码
以下是一个使用 Spring Boot 实现将数据查询结果写入文本文件并将其作为 HTTP 响应返回的示例:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/export")
public class ExportTxtController {
@Autowired
private JdbcTemplate jdbcTemplate;
@GetMapping(value = "/txt", produces = MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<String> exportTxt() {
try {
List<Map<String, Object>> results = jdbcTemplate.queryForList("SELECT * FROM users");
FileWriter writer = new FileWriter("output.txt");
for (Map<String, Object> result : results) {
writer.write(result.toString() + "\n");
}
writer.close();
System.out.println("Successfully wrote to the file.");
String content = results.toString();
return ResponseEntity.ok()
.contentType(MediaType.TEXT_PLAIN)
.body(content);
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
return ResponseEntity.badRequest().body("Error occurred while exporting the file.");
}
}
}
```
在上面的示例中,我们使用 `JdbcTemplate` 来执行 SQL 查询并将结果写入名为 `output.txt` 的文本文件。我们使用 `@Autowired` 注解将 `JdbcTemplate` 注入到控制器中,并在 `exportTxt()` 方法中使用它来执行查询。我们使用 `FileWriter` 类将查询结果写入文本文件,并使用 `StringBuilder` 类将查询结果转换为字符串形式。最后,我们将文件内容作为 HTTP 响应返回,即使用户可以下载它。
阅读全文