如何使用sqlite数据库部署javafx应用程序(最好使用inno脚本)

时间:2015-04-01 05:42:22

标签: sqlite deployment javafx fxml

我想部署一个javafx fxml应用程序。我用过sqlite3数据库。我尝试使用inno脚本通过添加.db文件来部署它,第一个登录页面显示但是在我输入凭据并登录后窗口就会崩溃。我认为这是因为我没有编程在弹出窗口中显示的异常。当我在netbeans中运行时,程序运行正常。请建议使用sqlite数据库部署fxml应用程序的最佳方法。

项目内容:

  1. 主要项目文件
  2. 图像位于名为images的单独文件夹中(背景图像显示在登录页面中)
  3. 数据库文件。
  4. 修改

    我认为问题是失踪的司机。它无法连接到.db文件。所以我将以下行添加到它连接到数据库的代码

    stmt.executeUpdate("CREATE TABLE IF NOT EXISTS admin_users (ID PRIMARY KEY NOT NULL, USERNAME TEXT UNIQUE NOT NULL,PASSWORD TEXT UNIQUE NOT NULL)");
    

    stmt.executeUpdate("INSERT INTO admin_users (ID,USERNAME,PASSWORD) SELECT * FROM (SELECT 1,'admin','xxxxx') AS tmp WHERE NOT EXISTS (SELECT USERNAME from admin_users WHERE USERNAME= 'admin') LIMIT 1");
    

    现在它正在创建一个我执行jar的数据库文件。它将通过登录页面,一切正常。但是,当我使用Inno Script部署项目时。当我点击提交时,同样的问题仍然存在,应用程序部队关闭。

1 个答案:

答案 0 :(得分:0)

我认为您应该提供更多信息,即日志中的例外情况。但基于屏幕显示和登录失败,可能是数据库错误。我最近使用sqlite db创建了一个Javafx应用程序,我使用Spring来初始化DataSource对象。这是bean定义(如果不使用Spring,将它与连接字符串进行比较仍然有用)。

<bean id="sqlliteDataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close" lazy-init="true">
        <property name="driverClassName" value="org.sqlite.JDBC" />
        <property name="url" value="jdbc:sqlite:databasefile.db" />
        <property name="initialSize" value="2" />
        <property name="maxActive" value="20" />
        <property name="maxIdle" value="5" />
        <property name="poolPreparedStatements" value="true" />
    </bean>

我认为问题可能是连接字符串或缺少驱动程序,但没有例外,我无法分辨。