【问题标题】:database location in IDEIDE中的数据库位置
【发布时间】:2017-07-06 18:45:56
【问题描述】:

1- 在 Netbeans 中,这个 JDBC_URL 工作正常(使用独立的嵌入式 Derby):-

someApp(这是目录)

|
src
    |
dataBasePackage.myDB
mainPackage
    |
    MainClass.java

JDBC_URL=“jdbc:derby:src/dataBasePackage/myDB”;

2- 本地机器名称上的文件夹:“appFolder”包含以下内容: appFolder image

.exe 工作正常,应用程序启动...但用户无法连接到 myDB ...这意味着 JDBC_URL 错误。

我的问题:当我想重新打包 someApp 以获得 someApp.jar 时,我必须更改 JDBC_URL 以匹配“appFolder”;我尝试了多种组合,没有一个工作!

附注: 在“文件系统”上设置 myDB,例如 JDBC_URL=” jdbc:derby:myDB “ ...虽然采用不同的安排也不起作用。

【问题讨论】:

  • 永远不要在你的代码中引用src,程序打包发布后它就不存在了。除非您打算拥有一个只读数据库,否则您不应该将其存储在 src 中。最好的办法是将数据库存储在众所周知的位置,例如 Mac 上的 {user.home}/Library/Application Support/{application name} 或 Windows 上的 {user.home}/AppData/Local/{application name}

标签: java swing derby


【解决方案1】:

您可以通过 JDBC 连接 URL 和 Derby“系统主目录”的规范来控制数据库文件夹的位置。

这两个概念在 Derby 文档中都有明确的解释。要了解这一点,请从这里开始:https://builds.apache.org/job/Derby-docs/lastSuccessfulBuild/artifact/trunk/out/devguide/cdevdvlp34964.html

可以以相对或绝对方式指定位置。

如果您在连接 URL 中提供绝对数据库名称,则数据库位于您指定的名称处。由于它是绝对的,它不依赖于 Derby 系统主页。

如果您在连接 URL 中提供相对数据库名称,则该数据库相对于 Derby 的系统主目录定位:http://db.apache.org/derby/docs/10.11/ref/rrefproper32066.html

【讨论】:

  • @Bryan...谢谢..您的参考资料简化了我对我所拥有的一些缺失概念的理解。;;;但是我想知道 derby.system.home 和 String JDBC_URL 用法的显着差异!
猜你喜欢
  • 1970-01-01
  • 2010-12-25
  • 2017-11-17
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多