java - 链接到 Access 数据库时如何输入相对 URL

标签 java database ms-access

我正在为学校做一个 Java 项目,我们必须使用 MS Access 来存储数据。我已经设法启动并运行数据库,但是我似乎找不到如何建立与数据库的相对链接。我在网上搜索并尝试了我能想到的一切,但似乎没有任何效果。这里有人可以帮忙吗?

这是我现在放置链接的方式:

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

我想要做的是使链接相对,这样我们团队的所有成员都可以使用相同的链接。

最佳答案

问题出在 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

关于java - 链接到 Access 数据库时如何输入相对 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15842807/

相关文章:

java - 事务在 Hibernate 中是可选的。但为什么我们每次都需要使用它呢?还有其他选择吗?

java - 为什么一直坚持创建无限的 java 线程

java 可扩展的电子邮件通知应用程序

java - 无法从第二类访问数据库助手

c# - ListView 到数据表

ms-access - 微软 Access 2010 : Query and Form

java - 我的 2 个线程在这里是生产者和消费者。当我运行程序时,它在removeFirst() 调用上抛出 nosuchelementexception。有人可以解释一下吗

ruby-on-rails - 如何重新计算 Rails 中的数据库记录 ID?

c# - 将 TimeSpan 数据类型转换为 DateTime?

sql-server - 使用VBA读取base64图像字符串?