我可以將H2,HSQLDB或任何其他嵌入式數據庫與InputStream
而不是文件中的數據庫一起使用嗎?H2,HSQLDB或使用InputStream的其他嵌入式數據庫
我打算在Android上使用AssetManager.open()
,它可以在隨機訪問模式下返回InputStream
。
我可以將H2,HSQLDB或任何其他嵌入式數據庫與InputStream
而不是文件中的數據庫一起使用嗎?H2,HSQLDB或使用InputStream的其他嵌入式數據庫
我打算在Android上使用AssetManager.open()
,它可以在隨機訪問模式下返回InputStream
。
H2支持pluggable file system,允許您訪問read-only databases in a zip or jar files。但是,AssetManager
目前沒有文件系統實施。實現它應該相對容易。最好的出發點可能是FileSystemZip和FileObjectZip。
大多數數據庫都需要隨機訪問底層文件,所以InputStream不會這樣做。
如果您準備進行一些開發工作,可以使用HSQLDB,特別是1.8.1.x版本,該版本的規模較小。
檢查org.hsqldb.lib.ResourceStreamProvider類並將其修改爲在調用其靜態getResourceAsStream方法時使用您爲文件名db.properties和db.script提供的流。
非常簡單,特別是因爲db.script和db.properties包含文本,您可以在程序的其餘部分輕鬆生成該文本。
我想你需要在'AssetManagerFileSystem'中保留一個靜態地圖'String' - >'AssetManager',這樣你就可以給對象一個名字(像一個目錄名)並且支持多個'AssetManager'對象當然,如果這是有道理的,我不太瞭解Android)。 –