未创建 Ucanaccess 连接

Ucanaccess Connection not being created

我有一个非常有趣的问题,但我没有找到问题的根源。

我公司最近更新到更新版本的 Java,用于连接到 MS Access 数据库的旧 ODBC 连接方法不再有效。所以我正在更新到一种新方法。

我发现 Ucanaccess 似乎是一个不错的选择,因为连接是只读的。

所以在开始之后我更新了 Ucanaccess 代码中的详细信息。

这里是我运行遇到的一个有趣的问题。

我已将以下内容添加到我的项目中

jackcess-2.1.3.jar

并将连接创建代码更新为以下内容

System.out.println("Establisting Connection.....");
Connection con = DriverManager.getConnection("jdbc:ucanaccess://Z:\Database\test.accdb");
System.out.println("Connection Establisted.....");

我使用的第一个数据库受密码保护,所以我认为这可能是导致问题的原因,所以我切换到一个新数据库。第二个数据库在共享驱动器上,所以我将位置映射到上面。即使进行了这两项更改,我仍然遇到同样的问题。

问题是每次我 运行 DriverManager.getConnection 行代码都不会到达 System.out.println("Connection Establisted.....");线。没有错误消息,程序仍在 运行ning,所以没有崩溃。 st运行ge 的事情是,如果我在其中输入无效路径,我就会到达那条线。虽然我收到一条错误消息说文件不存在。

我一直没有找到解决此问题的方法。

我认为 URL 连接可能有问题。它对我有用:

public class ConnectionUcanaccess {

    static
    {
        try {
            Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            System.out.println("driver loaded");
        } catch (ClassNotFoundException e) {
            System.out.println("the class driver can't be loaded");
        }
    }

    static Connection getConnection() throws SQLException {
     return DriverManager.getConnection("jdbc:ucanaccess:///Users/shared/Desktop/database.accdb");
    }

    public static void main(String[] args){

        try {
            Connection con = ConnectionUcanaccess.getConnection();
            System.out.println("Connected: " + !con.isClosed());

        } catch (SQLException e) {
            System.out.println("Error:" + e.getMessage());
        }
    }
}