通过Socket发送ResultSet

时间:2013-03-24 14:48:32

标签: java sockets ms-access resultset

我正在尝试创建一个分布式系统,其中GUI将驻留在职员的PC上,而.mdb将驻留在将充当服务器的另一台PC上。

我想知道如何从客户端向服务器发送查询并检索ResultSet并使用Socket在客户端GUI上填充JTable

初步想法

我最初想过使用GSON将数据从客户端发送到服务器和反面,但不知道如何以及它是否是正确的方法?

3 个答案:

答案 0 :(得分:3)

您无法使用ResultSet通过网络发送Socket对象,因为ResultSet未实现Serializable。如果您想使用从JTable获得的结果填充ResultSet,您应首先从中检索结果并存储在ArrayList或任何其他适合您的Collection中然后通过CollectionSocket跨网络的对象发送到另一端。

答案 1 :(得分:2)

基本上你可以用CachedRowSet

来做

虽然我推荐了一层抽象

答案 2 :(得分:0)

首先,您不需要发送查询只需发送一个与特定查询相对应的数字或标志,例如当用户点击GUI进行显示时,将#1发送到服务器以显示插入#2,依此类推。 。 从服务器获取Resultset非常棘手。

我面临着同样的情况,我需要从数据库读取并将Resultset发送到客户端,但是要通过网络发送对象,您需要ObjectOutputStream,只有当您发送的对象属于实现Serialiazble的类但在您的case Resultset不实现Serializable,因此解决方案是

创建一个用户定义的类并在其上实现serializable然后将Resultset内容读入此类的对象,并通过Stream发送此数据,您可以发送这样的数据,我尝试过它并且它对我有用。