我想部署一个javafx fxml应用程序。我用过sqlite3数据库。我尝试使用inno脚本通过添加.db文件来部署它,第一个登录页面显示但是在我输入凭据并登录后窗口就会崩溃。我认为这是因为我没有编程在弹出窗口中显示的异常。当我在netbeans中运行时,程序运行正常。请建议使用sqlite数据库部署fxml应用程序的最佳方法。
项目内容:
修改
我认为问题是失踪的司机。它无法连接到.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部署项目时。当我点击提交时,同样的问题仍然存在,应用程序部队关闭。
答案 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>
我认为问题可能是连接字符串或缺少驱动程序,但没有例外,我无法分辨。