我想将ResultSet从服务器传递到客户端,然后将所有值放在JTable
中(它已经在客户端中)。我想使用JSonObject
,但我不知道是否必须将其序列化才能发送,或者我必须直接将其发送给客户端。使用JSonObject
或其他方式更好吗?
答案 0 :(得分: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
本身。
答案 1 :(得分:0)
你永远不应该将ResultSet返回给客户端,客户端不应该知道在服务器上进行了什么样的处理(这种情况我们可以知道某种类型的DB操作已经完成,抽象点丢失了)。更好的方法是将ResultSet转换为集合并将集合(例如ArrayList)返回给客户端。