一.操作步骤:
步骤一:准备一个数据库
本篇以数据库student为例,里面只有一个表name,如下图:

步骤二:写 JDBC 连接代码(注:需适配当前的环境)
1.先确认几个关键信息:
- 数据库名:
student - 本地连接:
localhost - 用的是 MySQL 数据库,Java 里连接需要用JDBC 驱动
2.完整代码:
java
package Practice10;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;
public class Test3 {
public static void main(String[] args) {
// 1. 定义连接信息
String url = "jdbc:mysql://localhost:3306/student?useSSL=false&serverTimezone=UTC&characterEncoding=utf8";
String user = "root"; // MySQL用户名
String password = "123456"; // MySQL密码
String driver="com.mysql.cj.jdbc.Driver"; //MySQL8.0必须用com.mysql.cj.jdbc.Driver
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 2. 加载JDBC驱动(MySQL 8.0+ 可以省略,但写上兼容老版本)
Class.forName(driver);
// 3. 获取数据库连接
conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("数据库连接失败!");
} finally {
// 6. 关闭资源(必须按rs -> stmt -> conn的顺序关)
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
3.注:必须做的 3 件事
-
添加 MySQL 驱动依赖:
-
如果你是 Maven 项目,在
pom.xml里加:java<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> -
如果你是普通 Java 项目,需要手动下载
mysql-connector-java-8.0.xx.jar,在 IDEA 里添加到项目依赖(File → Project Structure → Modules → Dependencies → + 导入 jar 包):
-



(如上图,点击"JAR或目录..."即可从文件中找到要加入的JAR包并加入)
-
修改代码里的关键信息
password改成你自己的 MySQL 密码
-
确认 MySQL 服务正在运行 打开你的数据库连接面板,确保
localhost是连接成功的状态,否则代码会连不上。
4.常见报错排查:
ClassNotFoundException: com.mysql.cj.jdbc.Driver→ 说明驱动没加好Access denied for user 'root'@'localhost'→ 用户名或密码错了Unknown database 'student'→ 数据库名写错了,或者没创建这个库Communications link failure→ MySQL 服务没启动,或者端口不是 3306
步骤三:运行代码
运行结果如下图:

二.注意事项:
1.URL书写格式:
如果运行后报如下异常:

1)异常含义解析:
java.lang.NumberFormatException: For input string: "3306student" 这个异常的意思是:字符串 "3306student" 无法被解析成数字。
从堆栈信息看,问题出在 com.mysql.cj.conf.ConnectionUrlParser.parseHostPortPair,说明 MySQL JDBC 驱动在解析你的连接 URL 时,把端口号部分当成了 "3306student" 去解析成整数,结果失败了。
2)根本原因:
你的连接 URL 写错了!
java
String url = "jdbc:mysql://localhost:3306student?useSSL=false&serverTimezone=UTC&characterEncoding=utf8";
这里 localhost:3306student 是错误的格式:
- MySQL 的 URL 格式是
jdbc:mysql://主机:端口/数据库名 - 你把端口
3306和数据库名student连在一起写成了3306student,少了一个/
正确的格式应该是:
java
String url = "jdbc:mysql://localhost:3306/student?useSSL=false&serverTimezone=UTC&characterEncoding=utf8";
2.断开数据库方式:
3.DriverManager类:
- DriverManager 就是 Java 里专门帮你 "获取数据库连接" 的工具类 ->它的作用只有一个: 根据你给的地址、账号、密码,帮你拿到和数据库的连接(Connection)
1)用生活例子类比:
你要去MySQL 数据库这个 "房子" 里拿数据:
- DriverManager = 门卫 / 登记处
- url、user、password = 你要去的房子地址、门牌号、钥匙
- getConnection() = 门卫检查你的钥匙,没问题就开门 ,给你一把进门权限(Connection)
- Connection = 你拿到的进门权限,有了它才能查数据、改数据
2)在代码里它到底做了什么?
java
conn = DriverManager.getConnection(url, user, password);
DriverManager 悄悄帮你干了 3 件事:
- 找到 MySQL 的驱动(你导入的 jar 包)
- 用
url找到数据库位置 - 验证账号密码,成功就返回一个连接对象 Connection
3)它在代码里的位置:
java
// 1. 地址、账号、密码
String url = "...";
String user = "root";
String password = "123456";
// 2. 用 DriverManager 获取连接!!!
Connection conn = DriverManager.getConnection(url, user, password);
它是连接数据库的 "入口工具类"。
4)必须记住的 3 个关键点
- DriverManager 是 Java 自带的类,不需要自己写
- 核心方法只有一个 :
getConnection(地址,账号,密码) - 返回值最重要 :返回
Connection(真正的数据库连接)
5)最简单的记忆口诀:
想连数据库 → 找 DriverManager DriverManager 给你 Connection 有了 Connection 才能操作数据
6)总结:
- DriverManager :获取数据库连接的工具类
- 作用 :通过地址、账号、密码,拿到
Connection - 核心方法 :
DriverManager.getConnection(url, user, password)
4.驱动类:
若Class.forName(driver); 报错,99% 是因为驱动类写错了,比如用了 MySQL 8.x 的驱动,但写的是 5.x 的旧类名。
1)错误原因:
例如:
java
String driver="com.mysql.jdbc.Driver"; // 旧版(MySQL 5.x)
- MySQL 5.x(老) :驱动类是
com.mysql.jdbc.Driver - MySQL 8.x(你现在装的) :必须用
com.mysql.cj.jdbc.Driver(多了.cj.)
如果电脑里装的 / IDEA 里用的是 MySQL 8.x ,但用了MySQL 5.X,所以旧类名找不到,直接报:
java
ClassNotFoundException: com.mysql.jdbc.Driver
2)把代码改成正确的:
java
package Practice10;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;
public class Test3 {
public static void main(String[] args) {
// 1. 连接信息(8.x 要加时区参数)
String url = "jdbc:mysql://localhost:3306/student?useSSL=false&serverTimezone=UTC&characterEncoding=utf8";
String user = "root";
String password = "123456";
String driver = "com.mysql.cj.jdbc.Driver"; // ✅ 改成新类名
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(driver); // 现在能找到了
conn = DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("数据库连接失败!");
} finally {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
3.)额外两件事(不然还可能连不上):
-
确认驱动包已导入
- 普通项目:
mysql-connector-java-8.0.xx.jar加到项目依赖 - Maven:
java<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency> - 普通项目:
-
URL后必须加参数: 这个针对MySQL 8.x, 强制要时区,否则连不上,因为8.x服务器在国外
java?useSSL=false&serverTimezone=UTC&characterEncoding=utf8MySQL 5.X用这个URL即可:
java"jdbc:mysql://localhost:3306/student"
4)一句话总结:
com.mysql.jdbc.Driver→ 5.x 旧版,8.x 已删除com.mysql.cj.jdbc.Driver→ 8.x 新版,必须写这个