http://www.kylewu.net/
前面已经向同学们简要介绍了Google Web Toolkit 和 Google App Engine ,并且做出了一个初步的界面。在这篇教程里,我们将一起学习如何使用Google App Engine 的数据库。
简单介绍Google App Engine 的数据库
Google App Engine 的数据库提供了健壮的可扩展的分布式数据存储,我们不必考虑连接哪一个数据库,也不需要配置连接参数。我们需要做的是调用简单的API来进行各种操作。
Google App Engine 的数据库提供了两套API : 标准API和底层API。标准API是与App Engine解耦的,所以使用标准API你可以很方便的将你的应用移植到其他环境中;而是用底层API,你可以让你的应用拥有更好的性能。
Google App Engine 支持两种连接数据库的标准: Java Data Objects (JDO) 和 Java Persistence API (JPA)。从Google App Engine 的网站中可以看到,它们都是由DataNucleus Access Platform提供的,不过我没有细看,有兴趣的同学可以自己点进去学习。
什么是JDO ?
Java Data Objects (JDO) 是存储对象的标准接口。使用了JDO的应用程序不需要关心数据库类型,不论是关系数据库,层次数据库还是对象数据库,这样在我们更换数据源的时候会非常的方便。
要在Google App Engine项目中支持JDO,需要进行配置,不过Eclipse的插件已经帮我们做好了,再次请有兴趣的同学移步这里仔细学习。
Java Persistence API (JPA) 和JDO的作用相似,我现在使用的JDO,所以就不多做介绍了,链接补上。
建立数据库的POJO类
前面进行了简单介绍,下面来实际操作一下。新建一个net.kylewu.idea.db.dataobject.Idea类。
package net.kylewu.idea.server;
import java.io.Serializable;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Idea implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1083036616443527590L;
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent
private String subject;
@Persistent
private String detail;
@Persistent
private String progress;
@Persistent
private String date;
public Idea(Long id, String subject, String detail, String progress,
String date) {
super();
this.id = id;
this.subject = subject;
this.detail = detail;
this.progress = progress;
this.date = date;
}
public Idea(String subject, String detail, String progress, String date) {
this.subject = subject;
this.detail = detail;
this.progress = progress;
this.date = date;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public String getProgress() {
return progress;
}
public void setProgress(String progress) {
this.progress = progress;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String toString(){
return String.valueOf(id)+"|"+subject+"|"+detail+"|"+progress+"|"+date;
}
}
JDO使用annotations来表示数据如何在数据库中存储。这里我们把id设置为主键。
与数据库交互需要用到PersistenceManager对象,它是由PersistenceManagerFactory中获得的,为了免去重复创建factory的开销,使用singleton模式来实现这个类。Google App Engine 上提供了一个很好的例子,我直接拿来用了。
package net.kylewu.idea.db;
import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManagerFactory;
public final class PMF {
private static final PersistenceManagerFactory pmfInstance = JDOHelper
.getPersistenceManagerFactory("transactions-optional");
private PMF() {
}
public static PersistenceManagerFactory get() {
return pmfInstance;
}
}
好了,这样就可以get到PersistenceManager对象了,那么该如何存储查询对象呢?代码很简单。
Idea idea = new Idea ("Kylewu Idea", "This is Kyle Wu's idea.", "75%", "");
PersistenceManager pm = PMF.get().getPersistenceManager();
pm.makePersistent(idea);
String query = "select from " + Idea.class.getName();
(List) list = pm.newQuery(query).execute();
同学们要问了,我们怎么让他跑起来呢?这个涉及到Google Web Toolkit 与服务器端的交互了,下一篇教程将详细介绍。
分享到:
相关推荐
综上所述,入门教程涉及到了安装与配置Eclipse开发环境、安装Google App Engine插件、创建和配置Web应用项目以及编译时的Java版本兼容性问题,这些知识点对于想要开始使用Google App Engine开发Web应用的开发者来说...
### 云应用开发 ——Google App Engine & Google Web Toolkit入门指南 #### 第1章 应该了解下 ##### 1.1 云基本知识 云计算是一种通过互联网提供按需计算资源和服务的方式,包括网络、服务器、存储、应用程序和...
- **示例应用**:在第三部分的文章中,作者会指导读者创建一个联系人管理应用程序,利用App Engine for Java的Java持久性支持来存储和管理联系人数据。 #### 五、总结 Google App Engine for Java为Java开发者提供...
以 MyEclipse 7.5 为例,你需要通过插件管理器添加 Google Appengine 插件。如果在搜索中找不到插件,你可以手动添加 Google 的更新站点(http://dl.google.com/eclipse/plugin/3.4)。安装完成后,记得重启 ...
总结来说,"appengine-java-sdk"是开发和运行Java应用程序在谷歌AppEngine上的基石,它集成了GWT的支持,为开发者提供了完整的开发、测试和部署解决方案。利用这个SDK,开发者可以构建高效、可扩展的云应用,并享受...
总的来说,《 Beginning Java™ Google App Engine》是一本全面的入门教程,涵盖了从基础概念到高级实践的各个层面。通过本书,读者将掌握在Google App Engine上构建和管理Java应用所需的知识和技能,为在云端开发...
Google App Engine(GAE)是谷歌提供的一种云计算平台,它允许开发者构建并托管Web应用程序,无需管理和维护服务器硬件。这个平台支持多种编程语言,包括Python、Java、Go和PHP,为开发者提供了强大的服务,如数据...
- **数据存储**:书中详细讲解了如何使用Google App Engine提供的数据存储服务(如Datastore),以及如何通过Java Data Objects (JDO) 和 Persistence as a Service 进行数据操作。 ##### 3. 核心组件和技术 - **...
《Google App Engine Java和GWT应用开发》一书聚焦于如何利用Google App Engine(GAE)平台、Java语言以及Google Web Toolkit(GWT)来构建强大、可扩展且交互式的云端Web应用程序。这本书由Daniel Guermeur和Amy ...
Google App Engine for Java 是一个由 Google 提供的云计算平台,专为 Java 开发人员设计,让他们能够构建可伸缩的Web应用程序。自2009年4月起,这个平台开始支持Java,为开发者提供了丰富的服务和工具。本文将深入...
标题 "GWT 项目开发 1.6.4 本地开发 appengine-tools-api 突破限制" 提及的是Google Web Toolkit (GWT) 的一个特定版本(1.6.4)在本地开发环境中利用appengine-tools-api进行开发时遇到的限制及如何突破这些限制。...
本书由 Kyle Roche 和 Jeff Douglas 合著,旨在为使用 Java 技术的 Web 开发者提供关于 Google App Engine 的核心组件、平台和服务的深入学习。作为云计算领域的一本指南,本书将带领读者从零开始探索 Google App ...
3. 准备GAE项目结构,包括`appengine-web.xml`配置文件。 4. 将GWT编译后的静态资源和GAE项目结构打包成WAR文件。 5. 使用Google App Engine SDK部署WAR文件到GAE。 在`Gwt.html`文件中,可能是GWT应用的启动页面,...
标题 "GWT AppEngine 保存对象序列号" 涉及到的是Google Web Toolkit (GWT) 和 Google App Engine (GAE) 平台上的数据持久化技术。GWT 是一个用于构建富互联网应用程序(RIA)的开源Java框架,而AppEngine是Google...
1. **Google App Engine (GAE)**: Google App Engine是一个托管平台,允许开发者构建、部署和运行web应用程序。它提供了服务器、数据库、存储和网络服务,无需考虑硬件维护,只需关注应用的代码。 2. **Java**: 这...
《基于Google App Engine(GAE)的Java和GWT应用开发》这本书深入探讨了如何使用 Java 和 GWT 在 GAE 上构建强大且可扩展的 Web 应用程序。通过对 GAE 的介绍、Java 和 GWT 的应用技巧以及构建交互式 Web 应用程序的...
通过分析这个GWT Guestbook项目,我们可以了解到GWT如何结合Java和Python来构建复杂的Web应用,以及如何利用Google App Engine的Datastore服务进行数据管理。同时,我们还能学习到如何处理用户交互、模板渲染和Web...
【标题】"gwt-saas-contacts:具有GWT的Cloud Appengine联系人" 提供了一个基于Google Web Toolkit(GWT)和Google Cloud Platform的App Engine服务的SaaS(Software as a Service)应用程序示例,专注于管理联系人...
GWT银行应用程序 基于Web服务器的应用程序,基于Google Web Toolkit... App Engine数据存储区是无模式的对象数据存储区,可为我们的Web应用程序提供健壮且可扩展的存储。 可以通过' 。 GWT UI活页夹有助于提高生产力
Google App Engine(GAE)是Google提供的一个云平台,用于构建和托管Web应用程序。它支持两种编程语言:Java和Python。本指南将重点介绍如何在Java环境下设置Google App Engine的开发环境,特别是使用Eclipse IDE。 ...