跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

mysql Connector/J如何使用_mysql Java驱动类库说明

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

相关文章