java - H2 嵌入式数据库在部署时丢失表/数据

标签 java database deployment h2

所以我有一个应用程序,它使用一个数据库,现在我需要在应用程序中使用一个嵌入式数据库,这样你所做的就是安装程序,并且数据库已经存在(所以客户端不必须安装 mysql 服务器、wamp、xampp 等的副本才能运行 mysql 数据库)及其所有信息。

我已经将应用程序导出到一个 jar 文件中,然后将其制作成一个 exe 文件,非常好,并且可以在我的电脑上运行,但是当我将其复制到另一台电脑并运行它时,数据库就在那里,但是表数据和我放入的表都消失了。我做错了什么?

提前致谢

最佳答案

有多种选择。一种选择是:

  • 使用 SQL 语句 SCRIPT TO '~/script.sql' 从当前数据库创建 SQL 脚本文件
  • 将文件 script.sql 从用户主目录复制到应用程序的源目录,以便可以将其捆绑为资源。使用应用程序源代码的根目录(因为这是最简单的解决方案)。
  • 在目标计算机中,使用数据库 URL jdbc:h2:~/data;INIT=runscript from 'classpath:script.sql'。这将打开数据库并运行脚本。它将把脚本作为资源读取。

还有其他选项,但它们要求您 read the documentation of the H2 database .

关于java - H2 嵌入式数据库在部署时丢失表/数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924873/

相关文章:

mysql - 将标签附加到 SELECT 上的 * 列

java - 验证jboss部署期间的错误。如何解决这个问题?

c++ - 用于部署 Qt 应用程序的文件

java - 通过java从.jar文件内部访问类

java - maven内存不足错误

java - 处理可能出现时间关键错误的异步保存?

sql - 时间范围表 SQL Presto

java - 将 Java Applet 与数据库连接

Java Bukkit 从 InputStream 加载 .jar 文件

python - 在没有互联网访问的情况下部署 Django 的简单方法?