JavaFX8,SQLite(嵌入式)exe,exec jar无法读取/更新运行时数据库

时间:2017-07-05 10:46:32

标签: java eclipse sqlite jdbc javafx-8

我正在使用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;
}

我使用的连接器和罐子是:

enter image description here

当用户第一次运行应用程序时,将以嵌入模式创建数据库。 我在DriverManager.getConnection("jdbc:sqlite:Application.db");更改了数据库的位置,搜索并尝试了几十种组合 许多其他事情。我有什么大不了的吗?

2 个答案:

答案 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");

现在一切正常。