Java中如何正确添加MySQL JDBC连接器?com.mysql.cj.jdbc包不存在报错如何解决
报错原因与解决方案
核心报错原因
该报错是Java编译/运行阶段没有将MySQL Connector/J驱动包加载到类路径导致的,仅把驱动jar放在代码同目录不会被Java自动识别加载。
你当前使用的MySQL 8.0 + 驱动8.0.26的版本匹配是正确的,com.mysql.cj.jdbc.MysqlDataSource也是8.x版本驱动的正确导入路径,无需修改导入语句。
分步解决方案
1. 先确认驱动包完整性
检查你放到同目录的jar包名称是否为mysql-connector-java-8.0.26.jar,不要用解压后的文件夹,也不要下载到错误的源码包,要确保是官方编译好的可执行jar包。
2. 手动命令行编译运行场景
编译和运行阶段都需要显式指定classpath包含驱动jar包:
- Linux/macOS系统执行命令:
编译:javac -cp .:mysql-connector-java-8.0.26.jar conn.java
运行:java -cp .:mysql-connector-java-8.0.26.jar conn - Windows系统执行命令:
编译:javac -cp .;mysql-connector-java-8.0.26.jar conn.java
运行:java -cp .;mysql-connector-java-8.0.26.jar conn
3. IDE开发场景(IDEA/Eclipse)
- IDEA操作路径:进入File -> Project Structure -> Libraries,点击+号选择Java,找到本地存放的
mysql-connector-java-8.0.26.jar添加,确认应用到当前项目模块即可。 - Eclipse操作路径:右键当前项目 -> Build Path -> Add External Archives,选中对应的驱动jar包导入即可。
代码潜在问题修正
你的现有代码catch块存在空指针风险:连接失败时con为null,调用con.class.getName()会额外抛出空指针异常,将对应行修改为:
Logger.getLogger(conn.class.getName()).log(Level.SEVERE, null, ex);
内容的提问来源于stack exchange,提问作者LokuDesu
相关产品推荐
相关产品推荐

