0

私は、MS Access を使用してデータを保存する必要がある学校向けの Java プロジェクトを行っています。データベースを起動して実行することはできましたが、データベースへのリンクを相対的にする方法が見つからないようです。Web を検索し、考えられるすべてのことを試しましたが、何も機能していないようです。助けてくれる人はいますか?

これが私が今リンクを張った方法です:

private static final String DATABASE_URL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\\Users\\Badlapje\\Dropbox\\workspace\\FOOP\\Group62RISK\\Risk.accdb";

次に、次のように呼び出します。

connection = DriverManager.getConnection(DATABASE_URL);

私がやりたいのは、リンクを相対的なものにして、チームのすべてのメンバーが同じリンクを使用できるようにすることです。

4

1 に答える 1

1

問題は、アクセス データベース ファイルの場所にあります: C:\\Users\\Badlapje\\Dropbox\\workspace\\FOOP\\Group62RISK\\Risk.accdb。このファイルは、誰もがコンピュータに持っているC:\\school-project\\Risk.accdb.

別の解決策は、ソースパッケージ内のJavaプロジェクト内にファイルを設定し、Javaコードを使用してファイルの絶対パスをロードすることです(この回答から適応):

package edu.proj.res;

public class Main {
    public static String getDatabaseLocation() {
        return Main.class.getClassLoader().getResource("edu/proj/res/database.txt").toString();
    }
    public static String changeToWindowsPath(String path) {
    return path.replace("file:/", "").replaceAll("/", "\\\\");
}
    public static void main(String[] args) {
        System.out.println(changeToWindowsPath(getDatabaseLocation()));
    }
}

プロジェクト構造を持つ:

ConsoleTests
- src
  - edu.proj.res
    + database.txt
    + Main.java

プログラム出力:

C:\workspace\ConsoleTests\bin\edu\proj\res\database.txt
于 2013-04-05T20:55:07.477 に答える