除非使用完整路径,否则找不到合适的驱动程序
Posted
技术标签:
【中文标题】除非使用完整路径,否则找不到合适的驱动程序【英文标题】: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(和依赖项)
【问题讨论】:
【参考方案1】:错误消息显示您缺少文件名前的两个斜杠。指定相对路径时,您的连接 URL 应如下所示:
jdbc:ucanaccess://PatientLog.accdb
在指定完整路径时,您应该使用如下内容:
jdbc:ucanaccess://C:/Users/Gord/Desktop/PatientLog.accdb
【讨论】:
其实这两种方法我都试过了,都报同样的错误。 但是这个异常并不是模棱两可的,如果 ucanaccess 找不到文件,则会抛出带有包装 FileNotFoundException 的 UCanAccessException(并且给定文件的消息不存在)。您只是在 jdbc:ucanaccess: 之后丢失了 //,因此 DriverManager 会抛出“找不到合适的驱动程序”(这意味着 ucanaccess 不接受 jdbc url)。以上是关于除非使用完整路径,否则找不到合适的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
在 java 中与 MS Access 数据库建立 SQL 连接时找不到合适的驱动程序
使用Cloud Foundry部署React应用程序时,除非删除浏览器数据,否则我的用户看不到更改