JDBC连接Access数据库提示“No Suitable Driver Found”问题求助
解决JDBC连接Access数据库提示“No suitable driver found”的问题
你遇到的问题根本不是路径空格导致的,核心原因是JDBC URL格式完全错误,不符合Access数据库JDBC驱动的要求。以下是具体解决步骤:
1. 选择正确的JDBC驱动并使用对应URL格式
Access数据库的JDBC驱动主要有两种,对应不同的URL规则:
方案一:使用UCanAccess驱动(推荐,支持Java 8+)
这是目前主流的Access JDBC驱动,不需要依赖系统ODBC配置,URL格式为:
jdbc:ucanaccess://你的Access文件路径
针对你的路径,正确的URL是:
String url = "jdbc:ucanaccess://C:/Users/Billy Bob Jones/Documents/My20Y1P2023.accdb";
路径里的空格不需要任何转义,直接保留即可。
方案二:使用JDBC-ODBC桥驱动(仅Java 8及以前可用)
Java 8之后官方已移除JDBC-ODBC桥,若你用的是Java 8,需要先在系统中配置ODBC数据源,或者直接用以下URL格式:
String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:/Users/Billy Bob Jones/Documents/My20Y1P2023.accdb";
注意:要确保系统安装了对应位数的Access ODBC驱动(32位/64位需和JVM一致)。
2. 确保驱动依赖已正确添加
- UCanAccess驱动:需要引入以下JAR包到项目的classpath中:
- ucanaccess.jar
- jackcess.jar
- commons-lang3.jar
- commons-logging.jar
解压UCanAccess官方压缩包后,将这些包直接添加到项目依赖即可。
- JDBC-ODBC桥:Java 8及以前自带该驱动,无需额外下载,但需要系统有Access ODBC驱动支持。
3. 示例代码(UCanAccess版本)
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Ex20_1_2023 { public static void main(String[] args) { String url = "jdbc:ucanaccess://C:/Users/Billy Bob Jones/Documents/My20Y1P2023.accdb"; // Access数据库无用户名密码则传入空字符串 try (Connection conn = DriverManager.getConnection(url, "", "")) { System.out.println("数据库连接成功"); } catch (SQLException e) { e.printStackTrace(); } } }
关键提醒
你之前使用的URLjdbc://C:/...完全不符合任何JDBC驱动的规范,这才是导致“No suitable driver found”的直接原因,和路径空格无关。只要按照上述步骤使用正确的URL格式,同时确保驱动依赖齐全,就能解决问题。
内容的提问来源于stack exchange,提问作者Sid Meka
相关产品推荐
相关产品推荐

