参考网页:
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" 涉及的是一个使用Google Web Toolkit (GWT)、Spring框架和Hibernate ORM技术的集成示例。这是一个常见的Web应用开发组合,用于构建高效、可扩展且功能丰富的Java web应用程序。下面将...
标题 "GWT操作数据库例子" 涉及到的主要知识点是使用Google Web Toolkit(GWT)来实现对数据库的操作,并将...学习这个例子,你可以深入理解GWT与数据库集成的基本方法,对于开发富互联网应用程序(RIA)会有很大帮助。
完整代码,绝对能用:Spring和...GWT部分集成了Spring的Service(网上的例子很少,要不代码不全,要不不能使用,这个保证完全可以使用)。请注意各个配置文件,程序所用的包都在WEB-INF下的图片上,请自行下载。
这个例子展示了如何将GWT的用户界面层与Spring的业务逻辑和服务层结合起来,实现一个完整的Web应用程序。 首先,GWT的应用通常分为三个主要部分:客户端(Client),服务器端(Server),以及共享(Shared)代码。...
- **Spring-GWT-RPC**:GWT的Remote Procedure Call (RPC)机制可以与Spring的AOP和DI集成,实现服务端的Spring Bean作为GWT RPC的服务端点。这样,客户端可以直接调用服务端的业务逻辑,而无需关心服务的实现细节。...
总的来说,这个例子旨在帮助学习者理解如何将SmartGWT的富客户端功能与Struts2的服务器端控制能力相结合,以构建高效、互动的Web应用。通过深入研究这个示例,开发者可以学习到如何在实际项目中整合这两个框架,提升...
【JBPM web(SSH+JBPM)例子】是一个基于Java技术栈实现的工作流管理系统示例,其中SSH代表Spring、Struts和Hibernate这三个流行的Java企业级开发框架的组合,而JBPM则是Business Process Management(业务流程管理...
jBPM不仅可以单独使用,还可以与其他技术框架集成,如Spring、Hibernate等。在实际项目中,jBPM可以用来管理用户工作流、审批流程、任务分配等,提高业务流程的效率和可维护性。 ### 6. 配置与部署 在开发完成后,...
- **数据访问/集成**:学习如何使用Spring进行数据库操作,包括JDBC、ORM框架如Hibernate的集成。 - **MVC框架**:探讨Spring MVC框架的设计原理及其实现机制,包括控制器、视图解析器等组件。 #### 3. 实战项目 - ...
1.2. 第一个例子:注册示例.............................................................................................................................................. 15 1.2.1. 了解代码.................
这篇博文可能是通过具体的例子来解释Spring框架的使用方法。 描述中提到的链接 "https://mydownload.iteye.com/blog/1297733" 似乎指向了一个个人博客上的资源,虽然描述为空,但我们可以推测博主分享的可能是一篇...
这些课程覆盖了广泛的Java EE技术栈,如Servlets、JSP、Struts、JSF/MyFaces/Facelets、Ajax、GWT、Spring、Hibernate以及Java 5&6等。 #### 二、Servlet和JSP概述 ##### 2.1 Servlet的基本概念 - **Servlet** 是一...