我正在使用JavaFx8和SQLite以及Eclipse Neon IDE创建一个简单的桌面应用程序。从Eclipse开始测试时,Application可以正常工作。但是,如果我创建可执行jar或Windows Exe文件,它不会读取/更新数据库。 这是用于创建和读取数据库的代码段。
private Connection loadPropertiesFileSQLite() throws SQLException, ClassNotFoundException {
try {
inputStream = new FileInputStream("databasesqlite.properties");
properties.load(inputStream);
Class.forName("org.sqlite.JDBC");
// database path, if it's new database, it will be created in the project folder
conSQLite = DriverManager.getConnection("jdbc:sqlite:Application.db");
System.out.println("Database Opened Successfully.");
} catch (Exception e) {
System.out.println("DDDD");
e.printStackTrace();
}
return conSQLite;
}
我使用的连接器和罐子是:
当用户第一次运行应用程序时,将以嵌入模式创建数据库。
我在DriverManager.getConnection("jdbc:sqlite:Application.db");
更改了数据库的位置,搜索并尝试了几十种组合
许多其他事情。我有什么大不了的吗?
答案 0 :(得分:0)
您是否正在使用属性文件? 有我的配置:sqlite-jdbc-3.7.15.jar //自动提交连接。 conSQLite.setAutoCommit(真);
并检查您是否拥有该文件的权限" Application.db"。
答案 1 :(得分:0)
关键是使用conSQLite = DriverManager.getConnection("jdbc:sqlite::resource:File:\\{some_path}\\Application.db");
而不是
conSQLite = DriverManager.getConnection("jdbc:sqlite:Application.db");
现在一切正常。