H2,HSQLDB或使用InputStream的任何其他嵌入式数据库

时间:2011-06-28 12:40:09

标签: java android hsqldb h2

我可以使用H2,HSQLDB或任何其他嵌入式数据库,使用InputStream而不是文件中的数据库吗?

我打算在Android上使用AssetManager.open(),这可以在随机访问模式下返回InputStream

4 个答案:

答案 0 :(得分:3)

H2支持pluggable file system,可让您访问read-only databases in a zip or jar files。但是,AssetManager目前没有文件系统实现。它应该相对容易实现。最佳起点可能是FileSystemZipFileObjectZip

答案 1 :(得分:0)

大多数数据库需要随机访问底层文件,因此InputStream不会这样做。

答案 2 :(得分:0)

AFAIK,H2HSQLDB在“独立”模式下使用时仅提供基于文件和内存的连接URI。因此,需要一个文件或一些堆内存空间;但你没有给它一个File / InputStream,一切都在连接URI中,例如jdbc:h2:~/test

答案 3 :(得分:0)

如果您准备进行一些开发,可以使用HSQLDB,特别是版本1.8.1.x,它的尺寸较小。

检查org.hsqldb.lib.ResourceStreamProvider类并修改它,以便在调用其静态getResourceAsStream方法时使用为文件名db.properties和db.script提供的流。

非常简单,特别是因为db.script和db.properties由文本组成,您可以在程序的其余部分轻松生成文本。