首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

GWT与hibernate集成的例证

2012-10-31 
GWT与hibernate集成的例子!参考网页:????? http://blog.sina.com.cn/s/blog_4051f5dc0100igm7.html????? h

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

热点排行