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

来源:这里教程网 时间:2026-02-28 20:53:10 作者:

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 时确保引入的是新版坐标:
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.33</version>
</dependency>
手动添加 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% 不是类名输错,而是环境问题:

立即学习“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 是否干净上,比查一个不存在的类名有效得多。

相关推荐