问题标签 [mapdb]

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 投票
1 回答
76 浏览

mapdb - MapDB 的引用和“外键”

到目前为止只使用了 MySql,我无法理解如何在 MapDB 中管理我在 MySql 中使用外键所做的事情。例如,如果我有两个(或更多)带有一些数据(如对象)的 ConcurrentNavigableMap,我该如何关联这些地图之间的数据?机制是什么?MapDB 文档过于简洁。谢谢

0 投票
0 回答
575 浏览

java - 如何读取 MapDB 文件中的数据

有没有办法像使用 MySQL 一样查看保存在 MapDB 文件中的数据?我正在通过 Web 应用程序将一些数据放入 ConcurrentNavigableMap 中,我需要检查它们是否正确保存。我试图打开数据库文件,但它显然不可读。

0 投票
0 回答
244 浏览

java - 如何将对象与 MapDB 关联

为了学校的目的,我正在使用基于 GWT 和 MapDB 的 Java Web 应用程序来实现数据持久性。由于我对 MapDB 不是很熟悉,所以我需要一些帮助。我的应用程序必须管理一个通过拍卖机制进行买卖的在线系统。注册用户可以销售产品并对其他用户销售的产品进行投标(或提问)。以下是我设计课程的方式:

拍卖类别:

信息类:

投标类别:

我以这种方式创建了数据库的文件:

现在我在想我做错了什么。拍卖可以有多个出价和多个问题(和答案)。此外,只有正在销售的用户才能回答有关该拍卖的问题。也许我必须删除竞标中的竞标字段并在竞标中插入一个竞标字段?拍卖是否有必要知道出价和信息是什么?

0 投票
1 回答
655 浏览

java - MapDB db.commit() db.close() 用法和问题

我不明白在使用 MapDB 时必须在何时何地放置这两条指令:

提交是为了当我修改数据库中的数据时,好的。但是每次我在方法中实例化这种对象时(即每次我需要访问数据库时):

我必须将 db.close() 指令放在方法的末尾吗?那么 db.commit() 呢?只有当我修改数据?
我问这个是因为我面临这种错误:

我的 MapDB 版本是 0.9.7。

0 投票
1 回答
64 浏览

java - 将整数的 ArrayList 与多个 ArrayList 进行比较以提取公共值

我有一个整数数组列表,从 MapDB 地图中提取,代码如下:

这是一个ID列表。我有另一个来自同一个数据库的 ConcurrentNavigableMap,称为拍卖。在这张地图中,对于每个包含的对象,我都有一个整数数组列表,称为 offId,它有一个唯一整数列表,每个整数代表一个特定的报价。每个 offId 它都被引用到该地图的特定对象(拍卖)。
在每个 offId 中,可能(或没有!)idOffUser 的某些元素匹配,因此我需要在拍卖中提取其 offId 至少与 idOffUser 元素匹配的对象,不包括重复项,因为我只需要知道用户在什么拍卖中提出了要约,但用户可以在拍卖中提出多个要约。
作为这种方法的结果,我需要一个 ArrayList 与用户至少提出报价的每个拍卖对象。
到目前为止,我知道我可以通过这种方式访问​​拍卖中的报价数组列表:

0 投票
0 回答
195 浏览

key-value-store - MapDB 后台压缩

对于我们的一个项目,我使用 MapDB 作为持久键/值存储。我正在使用由文件支持的 HTreeMap,并且想知道如何在后台启用压缩。

代码与上面不完全相同,但相似。有人可以让我知道我错过了什么吗?我根本没有看到文件被压缩。我错过了什么?

问候,-C

0 投票
1 回答
563 浏览

java - 如何从 MapDB 3.x 中删除和重命名表?

在 MapDB 1.x 中,您可以通过调用db.delete("table name")和轻松地从 MapDB 中删除表db.rename("old table name", "new table name")。但似乎不再有 API 功能可以执行上述任何一项操作。

如何在 MapDB 3.x 中删除和重命名表?

0 投票
2 回答
828 浏览

java - 在 mapdb 中使用 `checksumHeaderBypass` 的成本是多少?

我们正在使用 mapdb 存储在长时间运行的进程中访问过的文件列表,这样如果我们需要中止或进程崩溃,我们可以从中断的地方继续。

我们希望防止崩溃破坏我们的 mapdb 文件存储。

所以我们正在使用我们定期将更改提交到磁盘的事务。

但后来我注意到一些有趣的事情,如果我们在某些时候崩溃我们的进程,我们仍然会收到错误

标头校验和损坏。商店未正确关闭,可能已损坏。用于DBMaker.checksumHeaderBypass()恢复您的数据。将来使用干净关闭或启用事务来保护商店。

但确实设置checksumHeaderBypass会使错误消失。checksumHeaderBypass使用此设置的成本是多少?

0 投票
1 回答
192 浏览

java - MapDb 树集键不带有 expire 属性

我使用 mapdb 的直接内存作为我的堆外内存。因为我的应用程序中有很多 sortedset,所以我使用 mapdb 树集缓存机制来存储我的值。

代码如下:

但是当我试图找到 时expireAfterCreate/expireAfterUpdate/expireAfterGet property,我什么也没有。只是想知道,为什么 treeset 没有附加这些属性?

还有更多想法可以使用 mapdb 的树集进行密钥过期吗?

0 投票
1 回答
349 浏览

java - Map Db compact 方法的使用方法以及它如何用于清除内存

谁能告诉我 mapdb.compact() 方法的用途是什么。我正在寻找如何在调用 commit() 方法后从堆中清除对象