db4o适用于什么场合?

db4o适用于什么场合?

您好,db4o 几乎无法对应于现有的 Oracle、SQLServer 或 DB2!完全正确。相比之下,db4o 更适合于 MySQL 或 HSQL,这使其对于大量项目来说已经足够。更为重要的是,开销一直是 db4o 开发人员特别关注的事情,这又让它特别适于小型的嵌入式环境。(我这里给出的示例只是一个简单的演示,和其他任何小型的演示一样,请务必清楚一点,即姑且不论它相比其他工具具有多少潜力,db4o 都会比您在这里所看到的要强大许多。)我不能用 JDBC 在 db4o 上进行查询!确实如此,尽管 db4o 团队曾想过创建 JDBC 驱动程序以让对象数据库能接受 SQL 语法,即一种所谓的 “关系对象映射”。(开发团队之所以没有这么做,据说是因为没有这个必要,而且性能会因此大受影响。)问题的关键是,您在实现中使用的是对象(POJO),除此之外别无他物。若不存储关系,为何还要使用 SQL 呢?但是我的其他程序如何获得数据呢?这要看具体情况。如果您这里所谓的 “其他程序” 指的是其他 Java 代码,那么只需在这些程序内使用 Person 类的定义并将其传递进ObjectContainer,正如我这里所做的一样。在 OODBMS 内,类定义本身就充当模式,所以无需其他的工具来获取 Person 对象。但是如果您这里所谓的 “其他程序” 指的是其他语言的代码,那么问题就会复杂一些。对于 db4o 不支持的语言,比如 C++ 或 Python,数据基本上是访问不到的,除非是您能从 Java 代码构建程序。db4o 适用于 C# 和其他的 .NET 语言,而其数据格式在二者之间是兼容的,这就使得 Java 对象对同样定义的 .NET 类也可用。如果您这里所谓的 “其他程序” 指的是使用 SQL 和标准调用级接口(比如 ODBC 或 JDBC)来与数据库进行交互的报告工具,那么 db4o(或与此相关的任何 OODBMS)可能未必是很好的选择。机警的读者会发现报告功能现在对 OODBMS 还不可用,但好消息是:已针对此问题发起很多产品和项目,而且 db4o 还支持 “复制(Replication)”,它允许 db4o 实例将数据从其自身的存储格式复制进 RDBMS。