我想将ResultSet从服务器传递到客户端,然后将我的所有值放在JTable
中(它已经在客户端中了)。我想使用JSonObject
,但我不明白是必须序列化它才能发送它,还是必须直接将它发送到客户端。是使用JSonObject
更好还是有其他方法?
通过TCP连接发送对象是可能的(而且相当容易)。然而,所述对象必须是implements Serializable.
ResultSet
是接口并且不扩展Serializable的类的实例。
如果ResultSet扩展了Serializable(以及为什么它没有显示在第二个链接中的原因),那么它可以通过ObjectOutputStream.
发送。如果它是一个类,而不是一个接口,它可以被扩展(假设它不是最终类,并且它至少有一个非私有构造函数),然后扩展可以实现Serializable.
。同样,情况并非如此。
因此,您必须从服务器上的ResultSet
读取值,然后发送它们,而不是发送ResultSet
本身。
您永远不应该向客户端返回ResultSet,客户端不应该知道在服务器上完成了什么类型的处理(在这种情况下,我们可以知道完成了某种DB操作,抽象点丢失了)。更好的方法是将ResultSet转换为一个集合,并将该集合(如ArrayList)返回给客户端。