GWT与hibernate集成的例子!

参考网页:

      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包导致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值