杰瑞科技汇

Java连接MySQL需哪些jar包?

JDBC vs. JDBC Driver

在开始之前,必须理解两个关键概念:

Java连接MySQL需哪些jar包?-图1
(图片来源网络,侵删)
  1. JDBC (Java Database Connectivity): 这是 Java 提供的一套标准 API(应用程序接口),定义了如何连接数据库、执行 SQL 语句、获取结果等操作,它位于 java.sqljavax.sql 包中,是 Java 标准库的一部分,你不需要额外下载任何 JAR 包

    • 好比是汽车的“说明书”和“操作规范”
  2. JDBC Driver (JDBC 驱动): 这是数据库厂商(如 Oracle/Mysql)提供的具体实现类,它实现了 JDBC API 中定义的接口,使得 Java 程序能够与特定品牌的数据库(如 MySQL)进行通信,这个实现就是以 JAR 包的形式提供的。

    • 好比是汽车的“发动机”和“变速箱”,它让“说明书”上的规范能够真正驱动汽车。

你的 Java 代码需要调用 JDBC API(java.sql),而 JDBC API 的具体功能需要通过 JDBC Driver(MySQL 的 JAR 包)来实现。


如何获取 MySQL JDBC Driver JAR 包

MySQL 官方推荐的驱动是 mysql-connector-j,获取它的方式主要有以下几种:

Java连接MySQL需哪些jar包?-图2
(图片来源网络,侵删)

直接下载(适用于传统项目)

这是最直接的方式,适合没有使用构建工具(如 Maven/Gradle)的项目。

  1. 访问 Maven 中央仓库:

    • Maven 是目前最流行的 Java 项目依赖管理仓库,所有主流的开源库都会发布在这里。
    • 访问地址:https://mvnrepository.com/
  2. 搜索驱动:

    • 在搜索框中输入 mysql-connector-jmysql java driver
  3. 选择版本并下载:

    Java连接MySQL需哪些jar包?-图3
    (图片来源网络,侵删)
    • 找到由 Oracle 发布的 mysql-connector-j
    • 选择一个较新的稳定版本(8.0.x 或 8.4.x)。
    • 在 "Files" 部分,你会看到一个名为 mysql-connector-j-x.x.xx.jar 的文件,点击下载即可。

使用 Maven(强烈推荐)

如果你的项目使用 Maven 进行构建管理,这是最简单、最规范的方式。

  1. 在你的 pom.xml 文件中,添加以下依赖:

    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <version>8.0.33</version> <!-- 建议使用最新稳定版 -->
    </dependency>
  2. 保存 pom.xml 文件后,你的 IDE(如 IntelliJ IDEA 或 Eclipse)会自动下载这个 JAR 包并将其添加到项目的 Classpath 中,你也可以在命令行中运行 mvn install 来手动下载。

使用 Gradle

如果你的项目使用 Gradle,在 build.gradlebuild.gradle.kts 文件中添加依赖:

Groovy DSL (build.gradle):

implementation 'com.mysql:mysql-connector-j:8.0.33'

Kotlin DSL (build.gradle.kts):

implementation("com.mysql:mysql-connector-j:8.0.33")

保存文件后,Gradle 会自动下载依赖。


如何在项目中使用 JAR 包

下载到 JAR 包后,需要确保它被你的 Java 项目“识别”到,也就是添加到 Classpath 中。

传统方式(手动添加)

  1. 将下载的 mysql-connector-j-x.x.xx.jar 文件复制到你的项目目录下(一个名为 lib 的文件夹)。
  2. 在你的 IDE 中:
    • IntelliJ IDEA: 右键点击 JAR 文件 -> "Add as Library..." -> 选择模块并确定。
    • Eclipse: 右键点击你的项目 -> "Build Path" -> "Configure Build Path..." -> "Libraries" 选项卡 -> "Add External JARs..." -> 选择你下载的文件。

命令行方式(手动编译运行)

如果你使用 javacjava 命令手动编译和运行,需要在命令中指定 Classpath。

  • 编译时:

    javac -cp ".;path/to/your/mysql-connector-j-x.x.xx.jar" YourJavaFile.java
    • -cpclasspath 的缩写。
    • 表示当前目录。
    • (Windows) 或 (Linux/macOS) 是路径分隔符。
    • path/to/your/... 是 JAR 包的完整路径。
  • 运行时:

    java -cp ".;path/to/your/mysql-connector-j-x.x.xx.jar" YourJavaFile

连接代码示例

这里提供一个完整的 Java 连接 MySQL 的示例代码。

准备工作

  • 确保你已经安装并启动了 MySQL 数据库服务。
  • 在 MySQL 中创建一个数据库和用户,并授予相应权限。
    CREATE DATABASE mytestdb;
    CREATE USER 'javauser'@'localhost' IDENTIFIED BY 'password123';
    GRANT ALL PRIVILEGES ON mytestdb.* TO 'javauser'@'localhost';
    FLUSH PRIVILEGES;

Java 代码

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
public class MysqlJdbcExample {
    // 数据库连接信息
    // 注意:如果使用旧版驱动 (5.x.x),URL格式为 "jdbc:mysql://host:port/dbname"
    // 如果使用新版驱动 (8.x.x),建议增加时区信息以避免警告
    private static final String DB_URL = "jdbc:mysql://localhost:3306/mytestdb?useSSL=false&serverTimezone=UTC";
    private static final String USER = "javauser";
    private static final String PASS = "password123";
    public static void main(String[] args) {
        // try-with-resources 语句,可以自动关闭资源,防止内存泄漏
        try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery("SELECT 'Hello, MySQL!' as message")) {
            // 检查连接是否成功
            if (conn != null) {
                System.out.println("连接到 MySQL 数据库成功!");
            }
            // 处理结果集
            while (rs.next()) {
                // 通过列名获取数据
                String message = rs.getString("message");
                System.out.println("查询结果: " + message);
            }
        } catch (SQLException e) {
            System.err.println("数据库连接或查询失败!");
            e.printStackTrace();
        }
    }
}

版本选择与兼容性

  • MySQL Connector/J 8.x:

    • 目标: 支持 MySQL 服务器 5.6, 5.7, 8.0。
    • JDBC 版本: 支持 JDBC 4.2 (Java 8+)。
    • 认证: 默认使用新的 caching_sha2_password 认证插件,如果你的 MySQL 用户是旧版 mysql_native_password,可能会遇到连接错误,解决方案是在连接 URL 中添加 ?useSSL=false&allowPublicKeyRetrieval=true 或修改用户认证方式。
    • 这是目前推荐使用的版本。
  • MySQL Connector/J 5.1:

    • 目标: 支持 MySQL 服务器 4.1, 5.0, 5.1, 5.5, 5.6。
    • JDBC 版本: 支持 JDBC 4.0 (Java 6+)。
    • 状态: 已过时,不再维护,不推荐在新项目中使用。
步骤 描述 推荐方式
获取 JAR 下载 MySQL 数据库的 Java 驱动包。 使用 MavenGradle 管理依赖。
添加依赖 将 JAR 包添加到项目的 Classpath 中。 IDE 自动集成(Maven/Gradle)或手动添加 Library。
编写代码 使用 JDBC API 加载驱动、建立连接、执行 SQL。 使用 try-with-resources 确保 Connection, Statement, ResultSet 正确关闭。
运行测试 运行 Java 程序,验证是否能成功连接数据库。 检查控制台输出和可能的异常信息。

希望这份详细的指南能帮助你顺利地在 Java 项目中使用 MySQL!

分享:
扫描分享到社交APP
上一篇
下一篇