我在Netbeans 17中做了一个桌面项目,这是一个销售系统,它有一个可移植的SQLite数据库。在打包项目之前,我做了测试,一切都正常工作,连接到我想要的数据库和查询,但问题出现在清理和构建项目之后,我把它打包在MySQL中,我运行了MySQL,看看一切是否仍然正常工作,我有一个问题,不再使连接到数据库。我不知道为什么,以及如何才能解决这个问题,任何建议?我会非常感激。
我一直在调查可能的解决方案,其中之一是,我应该配置我的项目,以便当我在NetBeans中打包时,我也包括我拥有数据库的文件。但我得到的步骤与我在Netbeans 17中得到的不一样,所以我找不到包含它的方法,我不知道这是否是解决方案。
1条答案
按热度按时间fnvucqvd1#
JAR文件是不可更改的,只读的。“ar”代表“archive”。
您将在数据库之外的某个地方写入数据库文件。每个计算机平台都有应用程序应该写入其支持文件的特定位置。
您可以将数据库捆绑在您的数据库中用作模板。在运行时,您可以将该数据库复制到数据库外部的位置。之后,让数据库引擎打开复制的数据库。
或者,您可以在SQL Server外部创建一个新的空数据库。然后使用database migration工具(如Flyway或Liquibase)运行一系列SQL脚本。这些脚本将创建所需的表、列、索引等。这些脚本可以在这些表中创建任何必要的数据,正如您的应用程序所期望的那样。(我不知道这些工具是否支持SQLite。它们支持许多其他数据库引擎。)
请注意,SQLite是本机软件。当您将SQLite引擎与您的应用捆绑时,它只能在一个特定的操作系统和芯片架构上工作。
如果你想要一个随处运行的数据库引擎,你有几个纯Java数据库可供选择,包括H2、HSQLDB(HyperSQL)和Derby(我推荐H2)。