gpt4 book ai didi

java - 直接从mysql套接字将大数据写入servlet中的响应套接字

转载 作者:行者123 更新时间:2023-11-29 21:03:31 25 4
gpt4 key购买 nike

我想知道这是否合理可能。假设我有一个(Spring)servlet,它为 MySQL 中存储为 blob 的大文件提供服务。不管这是否理想,情况就是如此。

假设我满足了很多这样的请求。我想尽可能限制我的java应用程序使用的内存。

理论上,我应该能够将从 mysql 连接读取的数据直接写入 servlet 响应,而无需将大的 byte[] 加载到我的应用程序进程的内存中。

如果重要的话,我正在使用 Spring JDBC 以及 Spring mvc。

谢谢

最佳答案

当然,这就是 ResultSet.getBinaryStream()ResultSet.getCharacterStream() 存在的原因。

然后只需将 InputStream 的内容复制到 OutputStream(大概是从 HttpServletResponse< 检索的 ServletOutputStream)即可 在 Controller 中)。

所使用的内存量和传输数据的实际方法由驱动程序决定。一个naive driver例如 MySQL 只会将整个数据读入 ByteArrayInputStream 中,而 PostgreSQL 会根据需要使用其 LargeObjectAPI 与服务器分开传输数据,从而提高效率内存使用情况。

关于java - 直接从mysql套接字将大数据写入servlet中的响应套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37018945/

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