乾元坤和设备管理系统应用

云计算设备管理系统的数据库搭建

日期:2026-09-01

乾元坤和编辑

根据需求分析,云计算设备管理系统数据库包含了设备编码表、设备台账表、用户分类表、购置计划表、检修计划表、备件表等 20 多个表。

GAE 数据存储区存储的是数据类的对象(称为“实体” ) ,并可以对某一指定数据类的每个实体执行查询操作。一个实体具有一个或多个属性(若干受支持数据类型中某一类型的命名值) 。属性可以是对另一实体的引用。为了便于建模和查询处理数据,GAE 数据存储服务通过使用 Java 数据对象 (JDO) 接口实现。JDO 在 Java 类(简单传统 Java 对象或 POJO) 上使用批注来说明类实例如何作为实体存储在数据存储区中,以及实体在从数据存储区中检索时如何重新创建为实例 。

云计算设备管理系统的数据库搭建

GAE 数据库是一种对象数据库而不是一个关系数据库,使用 GAE 数据库和使用一般数据库有所不同,要通过特殊的办法在持久对象之间建模关系。持久对象之间的关系可描述为有主的(其中一个对象无法脱离另一个而存在) 或无主的(两个对象都可存在,而不管其彼此的关系) 。JDO 接口的 App Engine 实现可以建模有主的一对一关系和有主的一对多关系,对于无主的关系可以通过直接在字段中存储数据存储区键来管理。

在云计算设备管理系统中设备台账表作为各个表的核心,记录着设备的基本信息。它与其他表有着复杂的关系,如:与设备运行状态表为有主的一对一关系,与设备检修表为有主的一对多关系,与备件表为无主的一对多关系,等等。创建设备台账表类的主要代码如下:

//import ……

@PersistenceCapable(identityType=IdentityType.APPLICATION)  // 批注

public class BasicInfo

{

  @PrimaryKey

  @Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)

  private Key eqCode ;  // 键 - 设备编号

  @Persistentprivate String eqName ;

  @Persistentprivate RunTime runTime; // 有主的一对一关系

  @Persistent(mappedBy = “employee”)

  @Order(extensions=@Extension(vendorName=“datanucleus”, key=“list-ordering”, value=“checkDate desc”)) //List 按照时间降序排列

  private List checkInfoSets;// 有主的一对多关系

  @Persistent

  private Set onesspareparts;// 无主的一对多关系

  //Set中包含了SpareParts对象的唯一标识符(键)

  // … 其他属性,set get 方法 …

}

每个使用数据存储区的请求都新建一个PersistenceManager 类的实例,调用其中方法实现存储新对象。PersistenceManagerFactory 实例的初始化需要时间。该实例可存储在将由多个请求和多个类使用的静态变量中。简单的做法是为静态实例创建一个单独的包装器类 PMF。主要代码如下:

// import……

public final class PMF

{

  private static final PersistenceManagerFactorypmfInstance=JDOHelper.getPersistenceManagerFactory(“transactions-optional”);

  private PMF() {}

  public static PersistenceManagerFactory get(){return pmfInstance;

  }

}

将新对象保存到数据存储区,主要代码如下:

// others ……

PersistenceManager pm = PMF.get().getPersistenceManager();

try {

  pm.makePersistent(basicinfo); //BasicInfo类的新对象

  } finally {

     pm.close();

数据库查询操作主要通过 JDO 包含的查询语言 JDOQL 进行,它会抓取指定类型中满足所有指定条件并按照描述的顺序排序的全部实体。对象属性的更新通过对照键值来操作,在保存一个对象时,给对象指定的键值已经被类型相同 ( 且具有相同父实体组 ) 的另一对象使用,那么保存时就会新的对象就会覆盖旧的对象实现更新。


了解更多相关信息,请点击设备管理系统,或拨打 进行咨询。

相关文章:

客服系统