如果您希望将myDatabase.h2.db
文件嵌入到 中.jar
,您可以这样做,但您将拥有对数据库的只读访问权限。由于.jar
文件是只读的,因此您无法修改它们,因此无法执行INSERT
或DELETE
任何 DDL 命令。
话虽如此,下面是有关如何以只读方式嵌入它的说明。
根据H2 的文档:
JDBC URL"jdbc:h2:~/myDatabase"
告诉 H2 引擎在当前用户myDatabase.h2.db
的主目录中查找一个数据库文件。
JDBC URL告诉 H2 引擎在当前目录(执行 java 程序的位置)中"jdbc:h2:file:/myDatabase"
查找名为的数据库文件。myDatabase.h2.db
如果将h2.db
文件嵌入到 a.jar
中,则无法以普通方式访问它。它只能作为 zip 文件中的文件访问。
为了使 H2 使用它,您必须使用 zip 作为 URL:
jdbc:h2:zip:~/data.zip!/test
在“ Zip 或 Jar 文件中的只读数据库”中查看更多信息。
当您将文件作为资源嵌入到 jar 中时,您可能会得到它的相对 url。使用...
MyClass.class.getClassLoader().getResource("myDatabase.h2.db")
...你会得到类似的东西:
jar:file:/C:/folder1/folder2/myJar.jar!/myDatabase.h2.db
然后,您可以将其作为字符串操作并作为 JDBC URL 连接传递给 H2。