2017-02-17 84 views
1

1在NetBeans,这JDBC_URL正常工作(使用独立的嵌入式Derby): -数据库位置

someApp(这是目录)

| 
src 
    | 
dataBasePackage.myDB 
mainPackage 
    | 
    MainClass.java 

JDBC_URL =“的jdbc:德比: SRC/dataBasePackage/MYDB”;

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

.exe文件工作正常,应用程序启动...但用户无法连接到MYDB ...这意味着JDBC_URL是错的。

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

P.S: 在像JDBC_URL =“jdbc:derby:myDB”这样的“文件系统”上设置myDB ...虽然安排不同,但也不起作用。

+1

永远不要引用'src'在你的代码,也不会在节目之后存在被打包并发布。除非你打算有一个只读数据库,否则你不应该将它存储在'src'中。您最好的选择是将数据库存储在Mac或'{user.home}/AppData/Local/{应用程序名称}等众所周知的地方,例如'{user.home}/Library/Application Support/{application name} '在Windows上 – MadProgrammer

回答

0

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

这些概念在Derby文档中都有清楚的说明。要了解相关信息,请从这里开始:https://builds.apache.org/job/Derby-docs/lastSuccessfulBuild/artifact/trunk/out/devguide/cdevdvlp34964.html

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

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

如果您在连接URL给出相对数据库名称,该数据库位于相对于德比的系统主页:http://db.apache.org/derby/docs/10.11/ref/rrefproper32066.html

+0

@Bryan ...谢谢..你的参考文献简化了我对我所缺少的几个概念的理解。但我想知道derby.system.home和String JDBC_URL使用方面的明显区别! – Mohd