【问题标题】:How a dbms server sends a ResultSet to a client? [duplicate]dbms 服务器如何将 ResultSet 发送到客户端? [复制]
【发布时间】:2019-02-07 15:16:47
【问题描述】:

我知道 ResultSet 由于其中存在连接详细信息而无法序列化。数据库服务器如何能够发送其中有连接的 ResultSet?谁能解释一下这个过程?我无法正确理解这个概念。我在网上搜索了,没有找到相关的详细信息。

【问题讨论】:

  • ResultSet 保持与 DBMS 服务器的连接并在需要时请求数据,数据不会立即出现在 ResultSet 中。驱动程序执行各个请求和数据处理。
  • 在我的项目中,我必须将 ResultSet 存储在 Redis 缓存中。但是 ResultSet 不能序列化。在执行此操作时,我怀疑服务器如何能够在套接字中发送 ResultSet。
  • 您无法存储 ResultSet。但是,您可以在自定义数据结构中从 ResultSet 中提取所需的所有数据,并将其存储在 redis 中。
  • 从概念上讲,在我看来,重复的目标确实回答了您的问题。两者似乎都有一个误解,即结果集是数据的容器。现有的答案缺少什么?
  • @Curious:正如多次提到的,ResultSet 是发送的。请阅读或重新阅读副本中的答案。

标签: java jdbc resultset


【解决方案1】:

数据库不发送ResultSet。 JDBC 驱动程序使用一些协议(通常是特定于产品的协议)与数据库通信。大多数情况下,这是通过 TCP/IP 进行的,因此可以归结为二进制数据流(与传统文件不同)。

然后,其中传输的数据以某种特定于 JDBC 驱动程序实现的方式在内部表示,但可以使用ResultSet 实现访问

换句话说:ResultSet 本身并不是传输的数据。它只是 JDBC 驱动程序向用户提供的一个方便的接口,用于访问从数据库接收到的数据。

【讨论】:

  • 你能举个例子更好地理解吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
  • 1970-01-01
  • 2012-06-04
  • 2021-08-01
相关资源
最近更新 更多