【问题标题】:How to pass a ResultSet from the server to a client?如何将 ResultSet 从服务器传递到客户端?
【发布时间】:2015-11-21 21:35:38
【问题描述】:

我想将一个 ResultSet 从服务器传递到客户端,然后将我的所有值放入 JTable(它已经在客户端中)。我想用JSonObject,但是不明白是要序列化才能发送,还是要直接发送给客户端。是使用JSonObject更好还是有其他方法?

【问题讨论】:

  • 您可能希望将 ResultSet 中的数据传递回客户端,但我认为您不想发送实际的 ResultSet 对象,或者?请说明。

标签: java sql resultset jsonobject


【解决方案1】:

Sending an object over a TCP connection is possible (and fairly easy).但是,该对象必须是implements Serializable.ResultSet is an interface and does not extend Serializable.的类的实例

如果 ResultSet 扩展了 Serializable(以及为什么它没有显示在第二个链接中的原因),那么它可以通过 ObjectOutputStream. 发送如果它是一个类而不是一个接口,它可能是扩展(假设它不是最​​终类并且它至少有一个非私有构造函数),然后扩展可以实现Serializable. 同样,情况并非如此。

因此,您必须改为从服务器上的 ResultSet 读取值然后发送它们,而不是发送 ResultSet 本身。

【讨论】:

    【解决方案2】:

    你永远不应该返回一个 ResultSet 给客户端,客户端不应该知道服务器上做了什么样的处理(这种情况下我们可以知道某种 DB 操作已经完成,抽象点就丢失了)。更好的方法是将 ResultSet 转换为集合并将集合(如 ArrayList)返回给客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多