【问题标题】:Derby DB installed, JAR included, where to locate DB for portability of project?安装了 Derby DB,包括 JAR,在哪里可以找到用于项目可移植性的 DB?
【发布时间】:2016-10-09 19:36:54
【问题描述】:

所以我是使用 Java 数据库的新手,我决定使用 Apache Derby。我已将它安装在我的系统上,并将 derby.jar 包含在项目构建路径中。但是,我需要这个项目是可移植的(包括从 Windows 到 OSX/UNIX),以便可以初始化和完全访问数据库,以便在我的机器以外的设备上更新和读取。

所以我的问题是,我该如何做到这一点?包含 derby.jar 文件是否足够,或者我需要做一些事情,比如在项目文件系统中初始化数据库或其他什么?我是否需要在项目中的某个类中指定某个写入位置?如果有帮助,我正在使用 Eclipse IDE。

感谢您的帮助!

【问题讨论】:

  • 您是否在问是否可以在 Windows、Mac 和 Linux 上使用相同的 derby.jar(是的,您可以)?或者您是否在询问您应该将数据库文件夹放在用户磁盘的哪个位置(您可能应该问您的用户这个问题,并将您的数据库放在他们要求您放置的位置,但是如果您需要一个默认值,每个操作系统往往都有它自己的默认存储位置)。
  • @BryanPendleton 我问的是后者(前者被扔在那里是因为我不确定这是否会是一个问题,因为目录 URL 跨平台的语法不同)。我想我知道如何设置默认位置 String userHomeDir = System.getProperty("user.home", "."); String systemDir = userHomeDir + "/DerbyDB/DBName"; // Set the db system directory. System.setProperty("derby.system.home", systemDir); 对于奇怪的代码格式,我很抱歉,无法理解 cmets 中的 SO 代码格式...第一次。

标签: java eclipse derby sqljdbc


【解决方案1】:

所以经过彻底阅读后,我找到了自己的解决方案,至少在理论上是这样(我还没有完成项目构建来尝试它)。在数据访问对象 (DAO) 中使用它。

根据John O'Conner

private void setDBSystemDir() {
    /* Decide on the db system directory: <userhome>/DerbyDB/DBName/ */
    String userHomeDir = System.getProperty("user.home", ".");
    String systemDir = userHomeDir + "/DerbyDB/DBName";

    // Set the db system directory.
    System.setProperty("derby.system.home", systemDir);
}

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 1970-01-01
    • 2019-09-13
    • 2020-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    相关资源
    最近更新 更多