问题标签 [db4o]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
691 浏览

.net - 如何将 IronPython 中创建的对象存储到对象数据库中

我想使用对象数据库来持久化在 IronPython 中创建的一些类。该数据库是 .NET 2.0 的 db4o(今天下载)。代码如下所示:

我在db.Store(p1)

我怀疑问题出在 IronPython 及其类型系统上,因为该类Person不是标准的 .NET 类。我试图坚持System.IO.FileInfo,效果很好。如何在 IronPython 中存储作为类实例的对象?

0 投票
1 回答
1012 浏览

java - 运行查询时 db4o (java) 出现问题

我正在浏览官方 db4o 教程的部分内容,并且正在尝试修改它们为您提供的用于运行本机查询的代码:

我已将此添加到他们的 Pilot 课程中:

我已经使用第二个构造函数填充了一个包含 500 个对象的数据库,并且使用 OME eclipse 插件,数据库中的所有数据看起来都是正确的。我已经测试了 getGames() 并且它按预期工作。

我的问题是,当我运行修改后的查询时,它返回数据库中的所有对象,我不明白为什么。我尝试更改查询以包含更标准的如果为真,否则为假结构,并更改查询以包括需要一定数量的点无济于事。无论我做什么,它似乎总是评估 (pilot.getGames() >= 100) 为真。

谁能帮我理解为什么?

0 投票
2 回答
402 浏览

subsonic - 亚音速和 DB4O

我最近在阅读Rob Conery 关于 DB4O 的文章,非常有趣。我的问题真的是关于 Subsonic 和 DB4O 的类生成和未来使用。

当 Subsonic 查看数据库然后生成类时,这将如何为 DB4O 工作。类是否必须手工编写,然后 DB4O 将存储类定义的对象,或者是否存在一些数据库设计过程,像 Subsonic 这样的类生成器可以使用?

Subsonic 是否会将 DB4O 作为其在未来构建中使用的数据库之一?

0 投票
5 回答
866 浏览

.net - 在更新字段时防止 DB4O 中的孤立对象

我想将 Person 对象存储在 DB4O 中。人员位置字段可以随时间更改。所以我从数据库中检索一个人并调用一个方法来将位置字段设置为一个新的位置对象。(我希望 Location 对象是不可变的,即 DDD 值对象)。

这可行,但是先前分配的 Location 对象仍保留在数据库中。如何配置 DB4O 以除去这些孤立的 Location 对象?还是我需要一些自定义过程来进行垃圾收集?

此示例的简化类:

编辑:更多信息 - Person 是一个 DDD 聚合根。因此,没有对一个人的内部状态的外部引用。如果 Person 更新了它的位置,那么旧的位置应该不复存在。

0 投票
3 回答
4469 浏览

.net - 推荐一个好的db4o viewer

我正在玩 db4o,并且我有 Visual Studio 的对象管理器查看器。看起来不错,但与 HeidiSQL/SQL Studio/等工具不完全一致,更不用说它锁定了 db4o 文件——我不能同时使用我的 db4o 应用程序和对象管理器。

也许我用错了,但无论如何,我想知道还有什么。您会推荐哪些工具来查看和操作 db4o 文件?

更新:我一直在使用 LINQPad。有一些牦牛剃须,但效果很好。就 HeidiSQL/SQL Studio/等应用程序中可用的功能而言,它仍有很多不足之处,但这是一个开始。

0 投票
3 回答
481 浏览

sql-server - 如何将数据从 SQL Server 传输到 db4o?

在搜索 ODBC 或 JDBC 后,我遇到了这个问题。令我惊讶的是,由于我是 db4o 的新手,我发现有一些工具可以浏览 db4o,包括一个 Netbeans 和 Eclipse 插件。然而,当涉及到手头的问题时,我只找到了一家公司,并且该产品不是出售或演示(让我觉得还没有准备好)。

那么,如何传输数据?有没有我还没有找到的工具或脚本?

0 投票
2 回答
1179 浏览

jdbc - 处理对象数据库(如 db4o)中的数据维护

对于使用像db4o这样的对象数据库,我一直觉得很困惑的一件事是,您应该如何处理通常由 SQL/PL-SQL 处理的复杂迁移。

例如,假设您在关系数据库中有一个名为 my_users 的表。最初您有一个名为“full_name”的列,现在您的软件处于 V2 中,您希望删除此列,将全名拆分为空白并将第一部分放在名为“first_name”的列中,第二部分放在列中名为姓氏。在 SQL 中,我将简单地填充“first_name”和“second_name”列,然后删除名为“full_name”的原始列。

我将如何在 db4o 之类的东西中做到这一点?我是否编写了一个 Java 程序,该程序通过脚本查找 User.class 的所有对象,在设置 first_name 和 last_name 时将 full_name 设置为 null?当我进行下一次 svn 提交时,将没有与 full_name 对应的字段/bean-property,这会是一个问题吗?似乎在我的“模式”发生更改的生产应用程序中使用它我想编写一个脚本来将数据从版本 x 迁移到版本 x+1,然后在版本 x+2 中实际删除我正在尝试的属性摆脱版本 x+1,因为我无法编写 Java 脚本来修改不再属于我的类型的属性。

似乎问题的一部分是RDBMS根据简单的不区分大小写的基于字符串的名称解析您所指的对象,在Java之类的语言中,打字比这更复杂,如果getter不能引用属性/setter/field 不是在运行时加载的类的成员,因此您基本上需要在同一个脚本中拥有 2 个版本的代码(嗯,自定义类加载器听起来很痛苦),存储您的类的新版本属于另一个包(听起来很乱),或者使用我提到的版本 x+1 x+2 策略(需要更多计划)。也许有一些我从未从 db4o 文档中收集到的明显解决方案。

有任何想法吗?希望这有点道理。

0 投票
1 回答
308 浏览

licensing - 在商业软件中使用 db4o for Android 需要付费吗?

db4o for Android 是否可以免费用于商业软件?我知道您可以为支持付费,但如果我不需要支持,它会免费吗?

0 投票
2 回答
2609 浏览

java - db4o 对象管理器企业版是免费的吗?我在哪里可以下载它?它是一个独立的应用程序吗?

根据标题,我对这个问题分为三个部分......

db4o 对象管理器企业版是免费的吗?
-我看到一篇关于它是免费的博客文章。

我在哪里可以下载它?- 网站不太清楚

它是一个独立的应用程序吗?-我似乎记得它是一个 Eclipse 插件,但这是不久前的事了。有 Intellij 插件吗?

0 投票
1 回答
333 浏览

c# - 如何从 db4o 中查询最旧的对象?

我有具有 DateTime 属性的对象,我如何查询最旧的对象?

在 db4o 论坛上询问后,我得到了答案:

这很容易:SODA-Query and从结果中创建一个排序的第一个/最后一个对象ObjectSet。不要迭代ObjectSet(因此不会激活对象),只需通过#ObjectSet.Get(index).

请注意:db4o 在查询执行中仅支持一组有限的性能排序(字母、数字、对象 ID),因此您可能必须将 DateTime 存储为毫秒才能获得良好的性能。