DBNavigator插件JDBC驱动配置正常,Java代码连库却报SQLException?
问题描述
我已在DBNavigator插件的设置中配置了JDBC驱动,配置无异常且插件能正常连接数据库,但运行Java代码连接时抛出SQLException异常。
我的代码如下:
public class TestDB { private final static String uName = "root"; private final static String uPass = "root"; private final static String sqlUrl = "jdbc:mysql://localhost:3306/mydbtest"; public static void main(String[] args) { try (Connection connection = DriverManager.getConnection(sqlUrl, uName, uPass)) { System.out.println("Connected"); } catch (SQLException e) { throw new RuntimeException(e); } } }
尝试手动配置插件中的JDBC驱动路径后问题依旧。我想知道:插件里已经装了驱动,为什么还要手动把jar包放到类路径?仅靠插件能不能解决这个问题?如果不行,该怎么修复?
原因分析
DBNavigator插件的驱动是插件自身独立使用的,和你的Java项目类路径完全隔离。插件运行在IDE进程中,而你的Java代码是作为独立Java应用启动,二者的类加载器环境不同,所以插件里的驱动不会被项目代码识别。
解决方法
仅靠插件无法解决这个问题,必须让Java项目能访问到JDBC驱动jar包,推荐两种方式:
1. 用构建工具管理依赖(推荐)
如果项目用Maven,在pom.xml中添加MySQL驱动依赖:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> <!-- 选择与MySQL服务器匹配的版本 --> </dependency>
如果用Gradle,在build.gradle中添加:
implementation 'mysql:mysql-connector-java:8.0.33'
构建工具会自动下载驱动并添加到项目类路径,无需手动复制jar包。
2. 手动添加驱动到项目类路径
- 找到DBNavigator插件存放驱动的目录(比如IntelliJ环境下通常在
~/.IntelliJIdeaXX/config/plugins/DatabaseDriver路径下),找到对应的mysql-connector-java.jar文件。 - 将jar包复制到项目的
lib目录(无此目录则新建)。 - 在IDE中右键点击该jar包,选择
Add as Library,将其添加到项目类路径。
额外提示
注意驱动版本要与MySQL服务器版本匹配:
- MySQL 8.0+ 需使用8.x版本驱动,URL建议添加时区和SSL参数避免异常:
private final static String sqlUrl = "jdbc:mysql://localhost:3306/mydbtest?useSSL=false&serverTimezone=UTC";
- MySQL 5.x 需使用5.x版本驱动。
内容的提问来源于stack exchange,提问作者OleksiiUA
相关产品推荐
相关产品推荐

