2013-04-05 37 views
0

我正在为学校做一个Java项目,我们使用MS Access存储数据。我已经设法启动并运行数据库,但是我似乎无法找到如何建立与数据库相关的链接。我搜索了网页,并尝试了我能想到的一切,但似乎没有任何工作。任何人都可以帮忙吗?如何在链接到访问数据库时输入相对URL

下面是我已经把现在的链接:

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); 

我想要做的就是让链接相关的,所以全体成员我们的团队可以使用相同的链接。

+0

什么你米由*亲戚*?如果您想共享数据库,请将其放置在共享驱动器(非本地)上,并让所有团队成员参考此份额。 – 2013-04-05 20:26:41

+0

@ PM77-1,您还可以将数据库文件作为本地文件发布到项目包中。我发布了一个关于检索文件路径并将其转换为Windows可接受路径的答案。 – 2013-04-05 20:59:40

回答

1

问题出在Access数据库文件位置:C:\\Users\\Badlapje\\Dropbox\\workspace\\FOOP\\Group62RISK\\Risk.accdb。只要确保将该文件放置在每个人都拥有的文件夹中,如C:\\school-project\\Risk.accdb

另一种解决办法是设置你的文件你的Java项目中源包内,然后使用Java代码(改编自this answer)加载该文件的绝对路径:

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 
相关问题