gpt4 book ai didi

java - 我可以持久化的内存中 Java 数据库(作为一个巨大的内存块)

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:34 28 4
gpt4 key购买 nike

我正在寻找用于 Java 的内存中关系 (SQL) 数据库(类似于 HSQLDB),我可以序列化其整个状态。

wholeDatabase.serialize(outputStream);
newCopyOftheDatabase.loadFrom(inputStream);

或者 DB 可能只使用我在初始化时给它的 byte[]:

byte[] memory = new byte[10 *1024*1024];
new InMemoryDatabase(memory);

数据库不会太大,低几十 MB,但我不能写文件,所以我需要在关闭 VM 之前将所有内容流出机器(并定期进行备份)。

我可以使用普通的(并且易于序列化的)Java 数据结构,如数组或映射而不是 DB,但我希望能够使用 SQL。

最佳答案

HSQLDB 有一个内存选项:

Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:aname", "sa", "");

您只需要转储和恢复内容。要转储结构,您可以使用 SCRIPT SQL 命令。比您可以通过选择转储每个表。管理器和/或服务器内部可能使用了更好的 API,但我认为您需要为此查看(开放)资源。

关于java - 我可以持久化的内存中 Java 数据库(作为一个巨大的内存块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/872229/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com