【问题标题】:How to embed database in javadb with my javafx standalone database application如何使用我的 javafx 独立数据库应用程序在 javadb 中嵌入数据库
【发布时间】:2014-04-10 16:20:47
【问题描述】:

我正在使用带有数据库集成的 JavaFx 创建一个桌面应用程序。当我从 programfiles/sun/javadb 运行 Java DB 服务器时,它向我显示 ClassNotFound 异常,但是当我从 NetBeans IDE 运行时,它也可以工作。所以请告诉我如何让我的应用程序在没有 NetBeans IDE 的情况下运行。我也想创建它的exe。我们如何使用 JAR 嵌入数据库。在创建 exe 时。

【问题讨论】:

标签: netbeans javafx derby


【解决方案1】:

您需要在应用程序的 CLASSPATH 中包含 Derby jar 文件(至少是 derby.jar,可能还有其他一些文件)。

【讨论】:

    【解决方案2】:

    我是 Eclipse 用户,所以我无法帮助您使用 Netbeans,但这里是如何在 Eclipse 中完成的:在这个解释中,我在 Java SE 中使用了 JPA(这是来自一个真实的项目,所以我希望能提供帮助)

    首先将项目导出为jar:

    • 单击文件 -> 导出 -> 并选择 Java/Runnable JAR 文件 -> 单击 下一个

    • -> Eclipse 会自动查找并选择您的 Main 类 + 选择您希望 ecrise 保存 JAR 文件的位置

    • -> 选择将所需的库打包到生成的 JAR 中 -> 点击完成。

    接下来,我假设您手动创建数据库,假设 db 文件夹名为 finance。现在将db文件夹与JAR放在同一个文件夹中,我在我的这个项目中使用了JPA所以这里是persistence.xml

    <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
        <persistence-unit name="FinanPU" transaction-type="RESOURCE_LOCAL">
            <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
            <class>lite.money.entities.Category</class>
    
            <!-- <shared-cache-mode>NONE</shared-cache-mode> -->
            <properties>
                <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
                <property name="javax.persistence.jdbc.url" value="jdbc:derby:finance;" /> <!-- Derby -->
    
                <property name="eclipselink.ddl-generation.output-mode" value="database" />
            </properties>
    
        </persistence-unit>
    

    这一行:

    <property name="javax.persistence.jdbc.url" value="jdbc:derby:finance;" /> 
    

    如您所见,finance 是您的 DATABASE FOLDER 的路径,因为它是相对路径; db 驱动程序将在 JAR 存在的同一文件夹中搜索文件夹。

    这也是我将 JavaDB 嵌入 JavaFX 应用程序的方式(当然是使用 JPA)。

    【讨论】:

      猜你喜欢
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多