以下内容出自GAE_GWT入门指南,我只是做了下学习笔记。
概述:
App Engine数据存储区存储对象(实体)并对其执行查询。
数据存储区可以在一个事务中执行多个操作。如果任意操作失败则回滚这个事务,适用于分布式网络应用。
GAE数据存储区与传统关系数据库的区别?
数据存储区是哟个分布式体系结构管理向超大型数据集的扩展.app engine应用程序可以通过描述数据对象之间的关系。
以及定义查询的索引,来优化数据的分布方式。采用了不同的数据设计和管理方式,可以充分利用自动扩展功能。
1,数据存储流程。
定义数据类型---》获得交互接口---->最后调用就交互接口把数据类型的实力保存到数据库中。
java sdk包括java数据对象,jdo和java持久化api jpa接口的实现数据建模和持久处理数据。
JDO 使用批注来说明类实例如何作为实体存储在数据存储区中,以及实体从数据存储区中检索时如何重新创建实例,
@PersistenceCapable(identityType=IdentityType.APPLICATION)
public class Employee{
@PrimaryKey
@Persistent(valueStrategy=IdGenerator)
.......101
}
定义一个实体employee的数据类型,如果要将实体保存进数据库中,我们需要是哟个persistenceManagerFactory对象中。
获得 persistenceManager对象来与数据存储区进行交互。
为确保程序的生命周期中只获取一次实例(会跨越多个查询),进行此操作需要将其包装纸单独类中。
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;
}
}
最后我们可以实例化数据类的实力并将其存储在数据存储区中。
Employee employee=new Employee("Alfre","Smith",new Date());
PersistenceManager pm = PMF.get().getPersistenceManager();
try
{
pm.makePersistent(employee);
}finally
{
pm.close();
}
JDO 包括一个称为 JDOQL 的查询接口,我们可以使用JDOQL 来检索作为作为此类实例的实体,如下所示:
String query ="select from"+Employee.class.getName()+"where lastName='Smith+'";
List<Employee> employees=(List<Employee>)pm.newQuery(query).execute();