1.24.MySQL-idea中连接MySQL的基本操作

一.操作步骤:

步骤一:准备一个数据库

本篇以数据库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 件事

  1. 添加 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包并加入)

  1. 修改代码里的关键信息

    • password改成你自己的 MySQL 密码
  2. 确认 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 数据库这个 "房子" 里拿数据:

  1. DriverManager = 门卫 / 登记处
  2. url、user、password = 你要去的房子地址、门牌号、钥匙
  3. getConnection() = 门卫检查你的钥匙,没问题就开门 ,给你一把进门权限(Connection)
  4. Connection = 你拿到的进门权限,有了它才能查数据、改数据

2)在代码里它到底做了什么?

java 复制代码
conn = DriverManager.getConnection(url, user, password);

DriverManager 悄悄帮你干了 3 件事:

  1. 找到 MySQL 的驱动(你导入的 jar 包)
  2. url 找到数据库位置
  3. 验证账号密码,成功就返回一个连接对象 Connection

3)它在代码里的位置:

java 复制代码
// 1. 地址、账号、密码
String url = "...";
String user = "root";
String password = "123456";

// 2. 用 DriverManager 获取连接!!!
Connection conn = DriverManager.getConnection(url, user, password);

它是连接数据库的 "入口工具类"。

4)必须记住的 3 个关键点

  1. DriverManager 是 Java 自带的类,不需要自己写
  2. 核心方法只有一个getConnection(地址,账号,密码)
  3. 返回值最重要 :返回 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.)额外两件事(不然还可能连不上):

  1. 确认驱动包已导入

    • 普通项目:mysql-connector-java-8.0.xx.jar 加到项目依赖
    • Maven:
    java 复制代码
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.33</version>
    </dependency>
  2. URL后必须加参数: 这个针对MySQL 8.x, 强制要时区,否则连不上,因为8.x服务器在国外

    java 复制代码
    ?useSSL=false&serverTimezone=UTC&characterEncoding=utf8

    MySQL 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 新版,必须写这个
相关推荐
炘爚1 小时前
MySQL——事务和隔离级别
数据库·mysql
DeboPXK2 小时前
NSK VH25EM 高防尘法兰型导轨技术手册
服务器·网络·数据库·经验分享·规格说明书
小挪号底迪滴2 小时前
Redis 和 MySQL 数据不一致怎么办?缓存更新策略实战
redis·mysql·缓存
the sun342 小时前
数据库中间件 ShardingSphere的安装与连通性配置
mysql
翼龙云_cloud2 小时前
阿里云国际代理商:如何使用RDS MySQL 构建网站数据库?
数据库·mysql·阿里云
程序猿乐锅2 小时前
【 苍穹外卖day03 | 菜品管理 】
java·开发语言·数据库·mysql
hughnz3 小时前
贝克休斯WellLink Assurance vs 帕特森-UTI REX:钻井报警系统的两条技术路线之争
大数据·数据库·人工智能
闪电悠米3 小时前
黑马点评-Redis ZSet-实现关注 Feed 流
服务器·网络·数据库·redis·缓存·junit·lua
天疆说3 小时前
在 Ubuntu 24.04 上安装 MATLAB R2021b
数据库·ubuntu·matlab