面向 Java 开发人员的 db4o 指南: db4o 中的数据库重构
2010-04-01 00:00:00 来源:WEB开发网清单 10. 从 Person 重构为 Individual
import com.db4o.*;
import com.db4o.config.*;
// ...
Db4o.configure().objectClass("com.tedneward.model.Person")
.rename("com.tedneward.persons.model.Individual");
注意,清单 10 中的代码使用 db4o Configuration API 获得一个配置对象,该配置对象被用作对 db4o 的大多数选项的 “元控制(meta-control)” —— 在运行时,您将使用这个 API 而不是命令行标志或配置文件来设置特定的设置(虽然您完全可以创建自己的命令行标志或配置文件来驱动 Configuration API 调用)。然后,使用 Configuration 对象获得 Person 类的 ObjectClass 实例……或者更确切地说,是表示磁盘上存储的 Person 实例的 ObjectClass 实例。ObjectClass 还包含很多其它选项,在本系列的后面我会展示其中的一些选项。
使用别名
在某些情况下,磁盘上的数据必须存在,以支持由于技术或策略上的某种原因而不能重新编译的早期应用程序。在这些情况下,V2 应用程序必须能够提取 V1 实例,并在内存中将它们转换成 V2 实例。幸运的是,在向磁盘存储并从中检索对象时,可以依靠 db4o 的别名 特性创建一个 shuffle 步骤。这样便可以区别内存中使用的类型和存储的类型。
db4o 支持三种类型的别名,其中一种类型只有当 .NET 和 Java 风格的 db4o 之间共享数据文件时才有用。清单 11 中出现的别名是 TypeAlias,它有效地告诉 db4o 用内存中的 “A” 类型(运行时名称)替换磁盘上的 “B” 类型(存储的名称)。启用这种别名是一种双线操作。
更多精彩
赞助商链接