来自documentation我在连接到derby数据库时没有真正得到我必须指定的内容,给定数据库的路径为java.io.File
。
以下代码中必须包含哪些内容path
?
File dbDirectory;
// ...
String protocol = "jdbc:derby:";
conn = DriverManager.getConnection(protocol + path
+ ";create=true");
当然,它应该是系统独立的。 我是否使用以下其中一项?
dbDirectory.getAbsolutePath()
dbDirectory.getCanonicalPath()
答案 0 :(得分:1)
我相信getAbsolutePath或getCanonicalPath都可以使用。实际上,只要您指定的相对路径相对于derby.system.home设置,您也可以提供相对路径。
这个问题提供了一些关于三种途径之间差异的有用信息:What's the difference between getPath(), getAbsolutePath(), and getCanonicalPath() in Java?
Derby非常容忍不同的路径设置,并且通常会处理其中任何一个。
但是,如果我有选择的话,我会使用getCanonicalPath,因为它是路径中“最干净”的,并且最不可能受到derby.system.home的意外重新设置的影响。
但,如果您打算以这样的方式构建应用程序,即可以在不同的计算机上从一个位置移动到另一个位置,并使用其数据库, ,您可能会发现使用相对路径更方便,因为您的应用程序变得更加“自包含”,您不必处理驱动器映射,主目录文件夹名称差异等方面的差异。
答案 1 :(得分:0)