【问题标题】:No Suitable driver found unless full path used除非使用完整路径,否则找不到合适的驱动程序
【发布时间】:2015-07-13 18:28:29
【问题描述】:

当尝试使用 ucanaccess 连接到 MS Access 数据库时,我在使用数据库的相对路径时不断收到“找不到合适的驱动程序”错误:

SEVERE: null
java.sql.SQLException: No suitable driver found for jdbc:ucanaccess:PatientLog.accdb
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at connectiontester.OpenDB.openConnection(OpenDB.java:33)
    at connectiontester.ConnectionTester$1.handle(ConnectionTester.java:41)
    at connectiontester.ConnectionTester$1.handle(ConnectionTester.java:37)

为了确保我的相对路径正确,我使用 DirectoryStream 获取目录列表,并且我的数据库 (PatientLog.accdb)确实显示在列表中。奇怪的是,当我使用完整路径时,错误消失了。

有人知道为什么吗?任何人都有解决方案,所以我可以使用相对路径?

使用 Java 1.8 更新 45

Netbeans 8.0.2

Windows 8

Ucanaccess 2.0.9.5(和依赖项)

【问题讨论】:

    标签: java ms-access jdbc ucanaccess


    【解决方案1】:

    错误消息显示您缺少文件名前的两个斜杠。指定相对路径时,您的连接 URL 应如下所示:

    jdbc:ucanaccess://PatientLog.accdb
    

    在指定完整路径时,您应该使用如下内容:

    jdbc:ucanaccess://C:/Users/Gord/Desktop/PatientLog.accdb
    

    【讨论】:

    • 其实这两种方法我都试过了,都报同样的错误。
    • 但是这个异常并不是模棱两可的,如果 ucanaccess 找不到文件,则会抛出带有包装 FileNotFoundException 的 UCanAccessException(并且给定文件的消息不存在)。您只是在 jdbc:ucanaccess: 之后丢失了 //,因此 DriverManager 会抛出“找不到合适的驱动程序”(这意味着 ucanaccess 不接受 jdbc url)。
    猜你喜欢
    • 2012-12-09
    • 1970-01-01
    • 2012-09-06
    • 2016-04-02
    • 1970-01-01
    • 2019-03-08
    • 2013-03-16
    • 2013-07-04
    相关资源
    最近更新 更多