我正在创建一个 JavaFX 应用程序,并对 sqlite数据库进行一些读写。
我使用创建与数据库文件的连接
connection = DriverManager.getConnection("jdbc:sqlite:test.db");
,我将数据库文件放置在项目根目录中。
一旦我运行项目,它就会按预期工作。但是,当我构建jar文件并运行该文件时,当我尝试从数据库查询时,应用程序关闭。将db
文件放置在jar
文件的目录中不起作用。我认为问题在于存储数据库文件或读取数据库文件的方法。我已经看过Github page for sqlite-jdbc,它说到了一些保存文件的只读方法。但这对我来说没有意义。
因此,如果有人可以指导我解决这个问题,我将不胜感激。
答案 0 :(得分:0)
我终于找到了解决方案。我在Github sqlite-jdbc上尝试了该方法,但没有成功。原来,我必须手动创建资源文件夹,并将其添加为 Intellij Idea IDE 的项目设置中的资源文件夹。然后我必须将连接定义为
connection = DriverManager.getConnection("jdbc:sqlite::resource:test.db");
并将 db 文件放入资源文件夹中。不同的IDE,添加资源文件夹的方法不同。当项目运行时,它将自动识别资源文件夹,系统会将数据库文件捆绑在 jar文件中。