MySQL Connector/J 不提供 _mysql 类,该类属于 Python 的 MySQLdb 库;Java 中正确驱动类为 com.mysql.cj.jdbc.Driver,需使用 8.0+ 版本 JAR 并配置 serverTimezone 参数。
MySQL Connector/J 不提供
这个类——那是 Python 的
库用的,Java 里根本不存在这个类。直接写
或 import
会报
或编译失败。
MySQL Connector/J 的正确驱动类名是
这是自 MySQL 8.0+ 官方推荐的驱动类,取代了旧版的
(已弃用)。JDBC 规范要求通过类名加载驱动,但现代用法已不需要显式
,只要 JAR 在 classpath 中,DriverManager 就能自动发现。
使用 Maven 时确保引入的是新版坐标:
手动添加 JAR 时,确认文件名含
,而非老版本
连接 URL 必须带
参数,否则可能抛
:
为什么找不到
?因为它是 CPython 扩展模块
是 Python 的
底层封装,由 C 编写,暴露给 Python 的原生接口。Java 没有、也不会提供同名类。混淆通常发生在开发者刚从 Python 切换到 Java,或误读了跨语言文档。
Java 端操作 MySQL 的标准路径是:JDBC 接口 →
/
→
→
所有实际数据库交互都走
和
包下的类,和
零关系
若在 Stack Overflow 或旧博客里看到
示例,基本可判定内容混用了 Python 和 Java 栈
常见错误:加载驱动失败但以为是类名写错
真正导致“驱动找不到”的原因,90% 不是类名输错,而是环境问题:
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
立即学习
“
Java免费学习笔记(深入)
”;
JAR 未加入 classpath(IDE 中没 Add as Library,或 Spring Boot 的
目录缺失)
Maven 依赖 scope 写成了
,导致运行时不可见
项目用了模块化(
),但没声明
多个 MySQL 驱动 JAR 版本冲突(比如同时存在 5.1.x 和 8.0.x),JVM 加载了旧版却用新 URL 格式,触发
Java 里没有
,也不需要它。把注意力放在确认 Connector/J 版本、URL 参数、classpath 是否干净上,比查一个不存在的类名有效得多。
_mysqlmysqldbnew _mysql()_mysqlClassNotFoundExceptioncom.mysql.cj.jdbc.Drivercom.mysql.jdbc.DriverClass.forName()
mysql
mysql-connector-java
8.0.33
mysql-connector-java-8.x.x.jarmysql-connector-java-5.1.x.jarserverTimezoneSQLException: The server time zone value '...' is unrecognizedjdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false_mysql_mysqlMySQLdbDriverManagerDataSourceConnectionPreparedStatementjava.sql.*com.mysql.cj.*_mysql_mysqllibtestmodule-info.javarequires mysql.connector.java;java.lang.UnsupportedOperationException: Not supported_mysql