`
pacer123
  • 浏览: 90763 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

GWT与hibernate集成的例子!

    博客分类:
  • GWT
阅读更多

参考网页:

      http://blog.sina.com.cn/s/blog_4051f5dc0100igm7.html

      http://www.ibm.com/developerworks/cn/java/j-gwtfu1/

 

具体实例代码如下:

     package cn.com.andy.client;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("greet")
public interface GreetingService extends RemoteService {
   void insertUser();
 
   //void updatetUser(String userName) throws IllegalArgumentException;
 
   //String queryUser(String userName) throws IllegalArgumentException;
 
   //void deleteUser(String userName) throws IllegalArgumentException;
 
}

 

 

 

 

package cn.com.andy.client;

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

/**
 * The async counterpart of <code>GreetingService</code>.
 */
public interface GreetingServiceAsync{
 
    void insertUser(AsyncCallback async);
 
    //void updatetUser(String userName) throws IllegalArgumentException;
 
    //void queryUser(String userName,AsyncCallback callback) throws IllegalArgumentException;
 
    //void deleteUser(String userName) throws IllegalArgumentException;
}

 

 

 

package cn.com.andy.server;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

import cn.com.andy.client.GreetingService;
import cn.com.andy.client.User;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

/**
 * The server side implementation of the RPC service.
 */
@SuppressWarnings("serial")
public class GreetingServiceImpl extends RemoteServiceServlet implements
    GreetingService {
 public void deleteUser(String userName) throws IllegalArgumentException {
  Session session = (Session)  GreetingServiceImpl.getSession();
        Transaction tx = session.beginTransaction();
        String hql = "delete from User d where d.username=:name";
        Query query = session.createQuery(hql);
        query.setString("name", userName);
        query.executeUpdate();
        tx.commit();
        GreetingServiceImpl.closeSession(session);
 }

 public void insertUser() {
  Session session = (Session) GreetingServiceImpl.getSession();
        Transaction tx = session.beginTransaction();
        User user = new User();
        user.setUsername("ttt");
        user.setPassword("andy");
        session.save(user);
        tx.commit();
        GreetingServiceImpl.closeSession(session);
 }

 public String queryUser(String userName) throws IllegalArgumentException {
  Session session = (Session) GreetingServiceImpl.getSession();
        Transaction tx = session.beginTransaction();
        String hql = "from User d  where d.username=:name";
        Query query = session.createQuery(hql);
        query.setString("name", userName);
        List list = query.list();
        tx.commit();
        GreetingServiceImpl.closeSession(session);
  
  User user = (User)list.get(0);
  return user.getPassword();
 }

 public void updatetUser(String userName) throws IllegalArgumentException {
   Session session = (Session) GreetingServiceImpl.getSession();
         Transaction tx = session.beginTransaction();
         String hql = "update  User d set password='update' where d.username=:name ";
         Query query = session.createQuery(hql);
         query.setString("name", userName);
         query.executeUpdate();
         tx.commit();
         GreetingServiceImpl.closeSession(session);
 }
 
 
 private static SessionFactory factory;
 static {
  try {
   // 读取配置文件
   Configuration cfg = new Configuration().configure();
   factory = cfg.buildSessionFactory();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 // 创建sessionFactory
 public static SessionFactory getSessionFactory() {
  return factory;
 }
 // 创建session
 public static Session getSession() {
  return factory.openSession();
 }
 // 关闭session,要关闭的时候条用这个方法就可以了
 public static void closeSession(Session session) {
  if (session != null) {
   if (session.isOpen()) {
    session.close();
   }
  }
 }
 
 public static void main(String agrs[])
 {
  new GreetingServiceImpl().insertUser();
 }
}

 

 

 

package cn.com.andy.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

 
public class HelloWorld implements EntryPoint {
 final GreetingServiceAsync helloWorldService = (GreetingServiceAsync) GWT.create(GreetingService.class);
 public void onModuleLoad() {
  final TextBox nameField = new TextBox();
     nameField.setText("GWT User");
     nameField.setFocus(true);
  
  Button button1 = new Button("add");
  button1.addStyleName("button1");
    button1.addClickListener(new ClickListener() {
   public void onClick(Widget sender) {   
   
    String userName = nameField.getText();
    Window.alert("add=success=" + userName);
    //helloWorldgService.insertUser(userName);
    helloWorldService.insertUser(new AsyncCallback(){
    
    public void onFailure(Throwable caught) {
     Window.alert("add=failure");
    }

    public void onSuccess(Object result) {
     Window.alert("add=success=");
    }
    
    });
   
   }
   });
   
   Button button2 = new Button("query");
   button2.addStyleName("button2");
     button2.addClickListener(new ClickListener() {
    public void onClick(Widget sender) {   
     //List list = new HibernateTest().getUsers();
     //User user = (User)list.get(0);
    // Window.alert(user.getId());
     //Window.alert(user.getUsername());
     Window.alert("query");
    }
  });
  Button button3 = new Button("update");
  button3.addStyleName("button3");
    button3.addClickListener(new ClickListener() {
   public void onClick(Widget sender) {   
    //new HibernateTest().updateUsers();
    Window.alert("update");
   }
  });
   Button button4 = new Button("delete");
   button4.addStyleName("button4");
    button4.addClickListener(new ClickListener() {
   public void onClick(Widget sender) {   
    //new HibernateTest().deleteUsers();
    Window.alert("delete");
   }
  });  
  
  RootPanel.get("userName").add(nameField);
  RootPanel.get("add").add(button1);
  RootPanel.get("query").add(button2);
  RootPanel.get("update").add(button3);
  RootPanel.get("delete").add(button4);
 }

}

 

运行是可能会报错误,我们可以再onFailure 方法内部将异常信息输出,注意要导入到WEB-INFO/lib下的jar包。可能会是由于缺少jar包导致。

分享到:
评论

相关推荐

    gwt+spring+hibernate

    标题 "gwt+spring+hibernate" 涉及的是一个使用Google Web Toolkit (GWT)、Spring框架和Hibernate ORM技术的集成示例。这是一个常见的Web应用开发组合,用于构建高效、可扩展且功能丰富的Java web应用程序。下面将...

    GWT操作数据库例子

    标题 "GWT操作数据库例子" 涉及到的主要知识点是使用Google Web Toolkit(GWT)来实现对数据库的操作,并将...学习这个例子,你可以深入理解GWT与数据库集成的基本方法,对于开发富互联网应用程序(RIA)会有很大帮助。

    GWT1.7+Spring2.5+Hibernate3集成(保证能用!)

    完整代码,绝对能用:Spring和...GWT部分集成了Spring的Service(网上的例子很少,要不代码不全,要不不能使用,这个保证完全可以使用)。请注意各个配置文件,程序所用的包都在WEB-INF下的图片上,请自行下载。

    gwt_spring-nolib.zip

    这个例子展示了如何将GWT的用户界面层与Spring的业务逻辑和服务层结合起来,实现一个完整的Web应用程序。 首先,GWT的应用通常分为三个主要部分:客户端(Client),服务器端(Server),以及共享(Shared)代码。...

    gwt(google web toolkit) 和 spring 在一起使用列子

    - **Spring-GWT-RPC**:GWT的Remote Procedure Call (RPC)机制可以与Spring的AOP和DI集成,实现服务端的Spring Bean作为GWT RPC的服务端点。这样,客户端可以直接调用服务端的业务逻辑,而无需关心服务的实现细节。...

    一个smart+struts2的例子

    总的来说,这个例子旨在帮助学习者理解如何将SmartGWT的富客户端功能与Struts2的服务器端控制能力相结合,以构建高效、互动的Web应用。通过深入研究这个示例,开发者可以学习到如何在实际项目中整合这两个框架,提升...

    JBPM web(SSH+JBPM) 例子

    【JBPM web(SSH+JBPM)例子】是一个基于Java技术栈实现的工作流管理系统示例,其中SSH代表Spring、Struts和Hibernate这三个流行的Java企业级开发框架的组合,而JBPM则是Business Process Management(业务流程管理...

    jBPM开发入门指南

    jBPM不仅可以单独使用,还可以与其他技术框架集成,如Spring、Hibernate等。在实际项目中,jBPM可以用来管理用户工作流、审批流程、任务分配等,提高业务流程的效率和可维护性。 ### 6. 配置与部署 在开发完成后,...

    Spring.in.Action.4th.Edition.2014.11.pdf

    - **数据访问/集成**:学习如何使用Spring进行数据库操作,包括JDBC、ORM框架如Hibernate的集成。 - **MVC框架**:探讨Spring MVC框架的设计原理及其实现机制,包括控制器、视图解析器等组件。 #### 3. 实战项目 - ...

    JBoss Seam 工作原理、seam和hibernate的范例、RESTFul的seam、seam-gen起步、seam组件、配置组件、jsf,jboss、标签、PDF、注解等等

    1.2. 第一个例子:注册示例.............................................................................................................................................. 15 1.2.1. 了解代码.................

    springbyexample

    这篇博文可能是通过具体的例子来解释Spring框架的使用方法。 描述中提到的链接 "https://mydownload.iteye.com/blog/1297733" 似乎指向了一个个人博客上的资源,虽然描述为空,但我们可以推测博主分享的可能是一篇...

    JSF教程国外大学的一个课件 Servlet+JSP-Review

    这些课程覆盖了广泛的Java EE技术栈,如Servlets、JSP、Struts、JSF/MyFaces/Facelets、Ajax、GWT、Spring、Hibernate以及Java 5&6等。 #### 二、Servlet和JSP概述 ##### 2.1 Servlet的基本概念 - **Servlet** 是一...

Global site tag (gtag.js) - Google Analytics