0

ドキュメンテーションから、データベースへのパスが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設定からの相対パスである限り、相対パスを指定することもできます。

この質問には、3つのパスの違いに関するいくつかの有用な情報があります。JavaのgetPath()、getAbsolutePath()、およびgetCanonicalPath()の違いは何ですか?

ダービーはさまざまなパス設定に非常に寛容であり、通常これらのいずれかを処理します。

ただし、選択肢があれば、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 に答える