WEB开发网
开发学院软件开发Java 面向 Java 开发人员的 db4o 指南: 查询,更新和一... 阅读

面向 Java 开发人员的 db4o 指南: 查询,更新和一致性

 2010-04-01 00:00:00 来源:WEB开发网   
核心提示: 查询规则由于 QBE 使用原型对象作为其模板来搜索数据,关于其用法有一些简单的规则,面向 Java 开发人员的 db4o 指南: 查询,更新和一致性(4),当 db4o 针对给定的目标(概念正确但实际实现进行了简化)搜索所有 Person 类型的对象时,要确定数据存储中的某个对象是否满足条件,实

查询规则

由于 QBE 使用原型对象作为其模板来搜索数据,关于其用法有一些简单的规则。当 db4o 针对给定的目标(概念正确但实际实现进行了简化)搜索所有 Person 类型的对象时,要确定数据存储中的某个对象是否满足条件,需要逐个比较字段值。如果原型中的字段值为 “null”,则该值匹配数据存储中的任何值;否则的话,必须精确地匹配值。对于原语类型,由于它不能真正具有 “null” 值,所以使用 0 作为通配符值。(这同样指出了 QBE 方法的一个缺点 —— 不能够有效地使用 0 作为搜索值)。应该指定多个字段值,所有字段的值都应该被数据库中的对象满足,从而使候选对象满足查询条件;实际上,这意味着将字段使用 “AND” 连接起来形成查询谓词。

在前面的示例中,查询所有 firstName 字段等于 “Brian” 的 Person 类型,并且有效地忽略 lastName 和 age 字段。在表中,这个调用基本上相当于 SQL 查询的 SELECT * FROM Person WHERE firstName = "Brian"。(虽然如此,在尝试将 OODBMS 查询映射到 SQL 时还是要谨慎一些:这种类比并不完善,并且会对特定查询的性质和性能产生误解)。

查询返回的对象是一个 ObjectSet,它类似于一个 JDBC ResultSet(一个简单的对象容器)。使用由 ObjectSet 实现的 Iterator 接口遍历结果非常简单。使用 Person 的特定方法需要对 next() 返回的对象进行向下转换。

更新和一致性

虽然简单的显示数据只和数据本身有关,大多数对象需要进行修改并重新存入数据库中。这可能是使用 OODBMS 最棘手的部分,因为对象数据库使用与关系数据库不同的一致性概念。实际上,这意味着在使用对象数据库时,必须更加谨慎地比较内存中的对象和存储中的对象。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:面向 Java 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接