GAE云服务--数据存储(一)

来源:互联网 发布:周杰伦唱功知乎 编辑:程序博客网 时间:2024/05/16 14:09


以下内容出自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();
  


   


	
				
		
原创粉丝点击