gpt4 book ai didi

java - 如何将 H2 嵌入式数据库读/写到 JAR 中的文件?

转载 作者:行者123 更新时间:2023-12-04 05:05:00 26 4
gpt4 key购买 nike

我有一个组织如下的 Eclipse 项目:

MyProj/
src/
main/
java/
<All main Java source here>
config/
spring/
spring-config.xml
views/
<All JSPs here>
h2/
my-h2-db
test/
java/
config/ } etc. for test sources

当我将它捆绑到一个 WAR 中时,它是这样打包的:
MyProj.war
META-INF/
WEB-INF/
web.xml
lib/
classes/
spring-config.xml
my-h2-db
views/
Home.jsp
About.jsp
etc.
com/ --> root dir for all compiled Java binaries

我需要编写能够 CRUDing H2 数据库(以及所有与之配套的表、用户等)的代码,在本示例中,我将其称为 my-h2-db .这样,无论我是从 Eclipse 内部进行测试,还是实际使用部署的 WAR,应用程序都可以使用相同的 DB 文件。

所以我问:
  • 我如何访问 my-h2-db Eclipse 和运行时 (WAR) 类路径中的文件,因为它打包在与 Eclipse 项目中不同的位置?和
  • 最佳答案

    我认为您不会希望在 WAR 应用程序中打包 H2 文件。它不能在 war 中使用它们。

    您在版本控制中需要的是用于构建数据库实体的 DDL(并在必要时进行预填充)。然后,在您的开发或生产环境中,您可以使用这些脚本来创建/更新数据库。

    您在 Web 应用程序中拥有的只是用于定位嵌入式数据库的 JDBC url(指定数据库的文件位置)。正如您所建议的,这将根据开发或生产环境而有所不同。

    我一直在使用 LiquiBase 作为管理数据库创建/升级的一种方式,它非常易于使用。

    但是,在开发过程中创建数据库然后将这些文件嵌入到 WAR 中以便直接使用它们的想法是行不通的。没有保存这些文件的概念,所以没有数据会持久化。

    关于java - 如何将 H2 嵌入式数据库读/写到 JAR 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15628571/

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