Java 将mysql查询结果推送到客户端GWT

Java 将mysql查询结果推送到客户端GWT,java,json,gwt,rpc,requestfactory,Java,Json,Gwt,Rpc,Requestfactory,我正在寻找一种有效的方法,将ResultSet转换为一种可以通过GWT-RPC发送的表单,该表单通常可以作为GWT服务器客户端通信的一部分。 与RequestFactory相比,使用JSON有哪些优点和缺点? 如果我想如上所述使用它们,有人愿意解释一下吗 我想在客户端处理数据库的大部分内容,而不仅仅是单个条目,这一点可能很重要。我说的是一次有数百个条目,所以我基本上认为我需要一种有效传输数据的方法 一次请求一个条目不会产生很大的开销吗 如果您使用的是以数据为中心的应用程序,并且应该在服务器端使用

我正在寻找一种有效的方法,将
ResultSet
转换为一种可以通过GWT-RPC发送的表单,该表单通常可以作为GWT服务器客户端通信的一部分。 与RequestFactory相比,使用JSON有哪些优点和缺点? 如果我想如上所述使用它们,有人愿意解释一下吗

我想在客户端处理数据库的大部分内容,而不仅仅是单个条目,这一点可能很重要。我说的是一次有数百个条目,所以我基本上认为我需要一种有效传输数据的方法

一次请求一个条目不会产生很大的开销吗


如果您使用的是以数据为中心的应用程序,并且应该在服务器端使用JPA,则更倾向于使用RequestFactory而不是JSON。(例如冬眠、春天等)。更多信息取决于您传输的数据类型

我想说,一次性传输所有数据可能不是一个正确的想法。因为序列化和反序列化需要很多时间。浏览器也可能挂起(根据我的经验)。用户必须等待所有数据加载完毕


相反,您可以以块的方式将数据传输到客户端,这样当用户编辑第一部分时,第二部分可以在后台加载。

如果您使用以数据为中心的应用程序,并且您应该在服务器端使用JPA,则RequestFactory优于JSON。(例如冬眠、春天等)。更多信息取决于您传输的数据类型

我想说,一次性传输所有数据可能不是一个正确的想法。因为序列化和反序列化需要很多时间。浏览器也可能挂起(根据我的经验)。用户必须等待所有数据加载完毕


相反,您可以以块的方式将数据传输到客户端,因此当用户编辑第一部分时,可以在后台加载第二部分。

移动大块数据通常是一个非常糟糕的主意,对于客户端-服务器体系结构来说并不典型。所以我建议重新设计

GWT-RPC是面向服务的。所有RPC框架都是这样的。主要目的是序列化/反序列化方法调用。换句话说,服务器和客户机正在通信的是必须定义良好的消息。在GWT中,底层传输机制是JSON,在SOAP(例如)中是XML,但机制是相同的

RequestFactory更以数据为中心。想象一下,一个servlet由一个简单的HTTP请求和URL/getCustomers触发。servlet只访问数据库并返回结果。RequestFactory非常类似于此,但提供额外的设施。例如,RequestFactory依赖于在服务器上创建实体对象Customer,在客户端创建代理对象CustomerProxy。该框架处理这些对象之间的数据传输。更具体地说,RequestFactory可以更新单个属性(即“字段”),因此可以通过仅发送状态差异来提高效率

一个重要的体系结构差异是GWT-RPC在更高的功能级别上运行。RequestFactory在数据级别运行。典型的实现可能是使用RequestFactory设置CRUD接口。使用GWT-RPC进行这样的设计是非常错误的

我建议在你做决定之前多阅读这两个框架。然而,RequestFactory似乎是解决问题的最佳方案


如果您对此只有一个用例,那么实现您自己的servlet可能就可以了。在GWT代码中使用RequestBuilder从servlet请求数据。访问数据库,将结果集转换为JSON,在客户端将响应转换回JavaScriptObject,就完成了。这将为您节省设置RequestFactory和所有实体、代理和定位器的工作。

移动大量数据通常是一个非常糟糕的主意,对于客户机-服务器体系结构来说并不典型。所以我建议重新设计

GWT-RPC是面向服务的。所有RPC框架都是这样的。主要目的是序列化/反序列化方法调用。换句话说,服务器和客户机正在通信的是必须定义良好的消息。在GWT中,底层传输机制是JSON,在SOAP(例如)中是XML,但机制是相同的

RequestFactory更以数据为中心。想象一下,一个servlet由一个简单的HTTP请求和URL/getCustomers触发。servlet只访问数据库并返回结果。RequestFactory非常类似于此,但提供额外的设施。例如,RequestFactory依赖于在服务器上创建实体对象Customer,在客户端创建代理对象CustomerProxy。该框架处理这些对象之间的数据传输。更具体地说,RequestFactory可以更新单个属性(即“字段”),因此可以通过仅发送状态差异来提高效率

一个重要的体系结构差异是GWT-RPC在更高的功能级别上运行。RequestFactory在数据级别运行。典型的实现可能是使用RequestFactory设置CRUD接口。使用GWT-RPC进行这样的设计是非常错误的

我建议在你做决定之前多阅读这两个框架。然而,RequestFactory似乎是解决问题的最佳方案

如果您对此只有一个用例,那么实现您自己的servlet可能就可以了。在GWT代码中使用RequestBuilder从servlet请求数据。访问数据库,将结果集转换为JSON,在客户端将响应转换回JavaScriptObject,就完成了。这将为您节省设置RequestFactory和所有实体、代理和loca的工作