0

文档中,我并没有真正得到连接到 derby 数据库时必须指定的内容,因为数据库的路径为java.io.File.

path以下代码中必须包含什么?

File dbDirectory;

// ...

String protocol = "jdbc:derby:";
conn = DriverManager.getConnection(protocol + path
                + ";create=true");

当然,它应该是系统独立的。我是否使用以下其中一项?

  • dbDirectory.getAbsolutePath()
  • dbDirectory.getCanonicalPath()
4

2 回答 2

1

我相信 getAbsolutePath 或 getCanonicalPath 都可以。实际上,您也可以提供相对路径,只要您指定的相对路径是相对于 derby.system.home 设置的。

这个问题有一些关于三个路径之间差异的有用信息:Java 中的 getPath()、getAbsolutePath() 和 getCanonicalPath() 有什么区别?

Derby 对不同的路径设置非常宽容,并且通常会处理其中的任何设置。

但是,如果我有选择的话,我会使用 getCanonicalPath,因为它是路径中“最干净”的路径,而且受意外重新设置 derby.system.home 的影响最小。

但是,如果您打算以一种可以在不同计算机上从一个位置移动到另一个位置的方式构建您的应用程序,并且无论如何都使用它的数据库,您可能会发现使用相对路径更方便,因为这样您的应用程序变得更加“独立”,您不必处理驱动器映射、主目录文件夹名称差异等方面的差异。

于 2013-02-09T16:52:08.337 回答
0

derby 连接字符串的示例:

http://db.apache.org/derby/docs/10.7/devguide/rdevdvlp22102.html#rdevdvlp22102

derby 连接字符串的完整文档:

http://db.apache.org/derby/docs/10.7/devguide/cdevdvlp17453.html

于 2013-02-08T17:55:42.163 回答