0

嗨,我是新手gwt(java based gui)。在这里,我正在尝试进行 GWT 服务器调用。

我想将我的保存MyBean到我的Database.

后来我不得不update,delete etc..

有什么可能性,我怎样才能做到这一点?

4

1 回答 1

4

使用 GWT 访问数据库有多种可能性,例如RequestFactory, RPC

在开始使用服务器调用之前,请通过,

  • GWT RPC使服务器异步调用

  • RequestFactoryGWT-RPC 的替代方案,用于创建面向数据的服务。

经过这里的链接是如何制作 RPC 的示例

来到您的 MyBean CRUD 操作,简而言之,简单的 RPC 结构如下:

GWT Code <===> InterfaceAsync <===> Interface (Synchronous)<===> Server Code 

我正在尝试向您解释它自己的元素。

同步接口(整个 RPC 的中心):

import com.google.gwt.user.client.rpc.RemoteService;
public interface BeanProcessRPCInterface extends RemoteService
{
    public Mybean processMybeanRPC(Mybean  bean);
}

A同步接口(客户端的关键部分):

import com.google.gwt.user.client.rpc.AsyncCallback;

public interface BeanProcessRPCInterfaceAsync
{
    public void processMybeanRPC (Mybean bean, AsyncCallback callback);
}

在这里,您使用Service实现“BeanProcessRPCInterface”的(等于servlet)

public class BeanProcessRPCImpl extends 
                   RemoteServiceServlet implements BeanProcessRPCInterface
{
    private static final long serialVersionUID = 1L;

    public Mybean processMybeanRPC(Mybean  bean)
    {
       //Process your widget  here (CRUD operations)

    }

**you can override doget,doPost,doDelete....etc along with your methods 
}

在您的 web.xml 中映射上述类;

     <servlet>
    <servlet-name>beanrpc</servlet-name>
    <servlet-class>com.server.BeanProcessRPCImpl</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>beanrpc</servlet-name>
    <url-pattern>/beanrpc</url-pattern>
  </servlet-mapping>

最后在您的 GWT 代码中。使用如下服务

在代码中使用:

//注册服务。

   private final BeanProcessRPCInterfaceAsync beanService = 
        GWT.create(BeanProcessRPCInterface.class);
        ServiceDefTarget endpoint = (ServiceDefTarget) service;
        endpoint.setServiceEntryPoint('beanrpc');

使用回调请求服务器

beanService.processMybeanRPC(mybean, callback);
 AsyncCallback callback = new AsyncCallback()
    {
        public void onFailure(Throwable caught)
        {
           //Do on fail
        }

        public void onSuccess(Object result)
        {
           //Process successfully done with result (result is which you
           // returned in impl class) .
        }
    };

PS .注意包结构:

BeanProcessRPCInterfaceAsync ,BeanProcessRPCInterface应该在 client* 包中

MyBean类应该在 shared* 包中

BeanProcessRPCImpl 应该在 server* 包中

祝你好运。

于 2013-03-30T09:46:45.137 回答