2016-10-09 6 views
1

私はJavaデータベースを扱うのが初めてで、Apache Derbyを使用して解決しました。私は自分のシステムにそれをインストールして、プロジェクトbuildpathにderby.jarを含めました。しかし、このプロジェクトはポータブル(WindowsからOSX/UNIXを含む)にする必要があります。これにより、データベースを初期化して、自分のマシン以外のデバイスで更新して読むために完全にアクセスできるようになります。Derby DBがインストールされ、JARが含まれています。プロジェクトの移植性のためにDBをどこに配置しますか?

私の質問は、どうしたらいいのですか? derby.jarファイルを十分にインクルードしているか、プロジェクトファイルシステムなどの中でデータベースを初期化する必要がありますか?プロジェクト内のクラスに特定の書き込み場所を指定する必要がありますか?参考になった場合は、Eclipse IDEを使用しています。

ありがとうございました!

+0

あなたが(はい、することができます)は、Windows、Mac、およびLinux上で同じ 'derby.jar'を使用することができれば、あなたが求めていますか?または、ユーザーのディスク上のどこにデータベースフォルダを置くべきかを尋ねています(おそらくユーザーにこの質問をして、データベースを置く必要がありますが、デフォルトが必要な場合は各オペレーティングシステムにそれ自身のデフォルト記憶場所)。 –

+1

@BryanPendleton後者(プラットフォーム間のディレクトリURLの構文が異なるために問題が起きるかどうかわからないため、前者がそこにスローされました)を求めています。私は私がデフォルトの場所を設定する方法を理解していると思う 'String userHomeDir = System.getProperty(" user.home "、"。 ");' 'String systemDir = userHomeDir +"/DerbyDB/DBName;; '//dbシステムのディレクトリを設定してください。 ' ' System.setProperty( "derby.system.home"、systemDir); ' 私は奇妙なコードフォーマットを謝罪し、コメントのSOコードフォーマットの理解に問題があります。初めて。 –

答えて

1

私は自分の解決策を見つけた後、理論的には少なくとも私は自分の解決策を見つけました(まだ試してみるためにプロジェクトビルドを完了していません)。データアクセスオブジェクト(DAO)でこれを使用します。

John O'Connerあたりとして:

private void setDBSystemDir() { 
    /* Decide on the db system directory: <userhome>/DerbyDB/DBName/ */ 
    String userHomeDir = System.getProperty("user.home", "."); 
    String systemDir = userHomeDir + "/DerbyDB/DBName"; 

    // Set the db system directory. 
    System.setProperty("derby.system.home", systemDir); 
} 
関連する問題