gpt4 book ai didi

persistence - HSQLDB 和内存文件

转载 作者:行者123 更新时间:2023-12-04 03:15:15 24 4
gpt4 key购买 nike

是否有可能以某种方式设置 HSQLDB,以便将带有数据库信息的文件写入内存而不是使用实际文件?我想使用 hsqldb 将一些数据结构与休眠映射一起导出。但是,不可能写入临时文件,因此我需要在内存中生成文件并返回一个包含其内容的流作为响应。

将 hsqldb 设置为使用 nio 似乎不是解决方案,因为在将这些文件写入文件系统之前无法获取这些文件。

我想的是一个hsqldb的protocol handler,但是我还没有找到合适的解决方案。

只是换句话说:黑客解决方案是向 hsqldb 传递一个流或多个流。然后它将在其操作期间将数据写入这些流。写入所有数据后,数据库的用户可以使用这些流通过网络将其发回。

最佳答案

是的,当然,我们一直使用它进行集成测试。

用作 url : jdbc:hsqldb:mem:aname

参见 here for more details

DbUnit 提供了一个方便的数据库转储方法作为其包的一部分:

    // database connection
Class driverClass = Class.forName("org.hsqldb.jdbcDriver");
Connection jdbcConnection = DriverManager.getConnection(
"jdbc:hsqldb:sample", "sa", "");
IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);

// full database export
IDataSet fullDataSet = connection.createDataSet();
FlatXmlDataSet.write(fullDataSet, new FileOutputStream("full.xml"));

参见 DbUnit FAQ更多细节。当然有恢复数据的例程,因为这实际上是包的目的:准备一个用于集成测试的测试数据库。通常我们使用注释来执行此操作,但您必须为此使用 API。

关于persistence - HSQLDB 和内存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3002106/

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