吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 111|回复: 0
收起左侧

[学习记录] IDEA使用JDBC连接MySQL数据库

[复制链接]
LzxkJ 发表于 2024-10-31 15:20
本帖最后由 LzxkJ 于 2024-10-31 15:22 编辑

在学习之前先了解一下MySQL JDBC 驱动(Connector/J)版本与 MySQL 数据库版本之间的兼容性
MySQL JDBC 驱动(Connector/J)版本与 MySQL 数据库版本之间的兼容性MySQL JDBC 驱动(Connector/J)版本与 MySQL 数据库版本之间的兼容性问题非常重要,因为不兼容的版本可能会导致连接问题、性能问题或者无法使用某些新特性。以下是 MySQL JDBC 驱动(Connector/J)版本与 MySQL 数据库版本的对应关系总结:
1. MySQL Connector/J 驱动版本和 MySQL 数据库版本的兼容性表[td]
MySQL Connector/J 版本支持的 MySQL 数据库版本
8.0.xMySQL 5.7, MySQL 8.0
5.1.xMySQL 5.5, MySQL 5.6,
MySQL 5.7
5.0.xMySQL 5.0, MySQL 5.1
3.1.xMySQL 4.1, MySQL 5.0
3.0.xMySQL 3.x, MySQL 4.0
说明:
  • MySQL Connector/J 8.0.x
  • 这是最新的 MySQL JDBC 驱动程序版本,完全支持 MySQL 5.7 和 MySQL 8.0,并且向后兼容 MySQL 5.5 和 MySQL 5.6(尽管官方建议使用最新的驱动程序以确保最好的兼容性和性能)。
  • 支持 Java 8 及更高版本。
  • MySQL Connector/J 5.1.x
  • 这是最广泛使用的一个版本,主要支持 MySQL 5.5、5.6 和 5.7。
  • 支持 Java 5、6、7 和 8。
  • MySQL Connector/J 5.0.x 及以下版本
  • 主要与 MySQL 5.0 及更早版本兼容,这些版本相对较老,并且已经逐步被 MySQL 官方停止支持。

2. 如何选择合适的 MySQL JDBC 驱动版本
  • 使用 MySQL 8.0 数据库时
  • 推荐使用 MySQL Connector/J 8.0.x,因为它引入了对 MySQL 8.0 中新特性的支持(如角色、JSON 类型的增强支持等),并修复了一些在 MySQL 8.0 和 5.7 中的重要问题。
  • 使用 MySQL 5.7 数据库时
  • 可以选择使用 MySQL Connector/J 8.0.x 或 MySQL Connector/J 5.1.x。
  • 如果使用较新的 Java 版本(如 Java 8 及以上),推荐使用 Connector/J 8.0.x,因为它提供了更多的性能优化和安全特性。
  • 使用 MySQL 5.5 或 5.6 数据库时
  • 推荐使用 Connector/J 5.1.x,因为这是最稳定且兼容性最好的版本。
  • Connector/J 8.0.x 也可以向后兼容这些数据库版本,但使用老版本数据库时未必需要最新的驱动。
  • 使用 MySQL 5.0 或更早版本时
  • 推荐使用 Connector/J 5.0.x 或更低版本。

3. MySQL JDBC 驱动版本变化带来的新特性和改进MySQL Connector/J 8.0.x 的主要新特性:
  • 完全支持 MySQL 8.0:包括对 MySQL 8.0 新特性的支持,如角色、窗口函数、JSON 扩展等。
  • 更好的性能:针对 Java 8 和 MySQL 8.0 进行了优化。
  • 安全性提升:提供对 TLS 1.2 的更好支持,改善了 SSL/TLS 连接的安全性。
  • 扩展的连接选项:增加了诸如 useSSL、requireSSL 和 verifyServerCertificate 等连接选项,可以更好地管理 SSL 连接。
  • 废弃老的加密协议:逐步淘汰了 MD5、SHA1 等较为脆弱的加密算法。
MySQL Connector/J 5.1.x 的主要特性:
  • 向后兼容性:支持 MySQL 5.5、5.6 和 5.7,并提供对 Java 5 到 Java 8 的兼容性。
  • 基础功能支持:涵盖了大多数应用场景,适合于 MySQL 5.x 系列数据库。
  • SSL 支持:支持基础的 SSL 连接,尽管安全性没有 8.0.x 系列强。

4. 如何检查当前的 JDBC 驱动版本如果你想检查正在使用的 MySQL JDBC 驱动版本,可以在代码中通过以下方式查看驱动程序版本:import java.sql.Driver;import java.sql.DriverManager;public class Main {    public static void main(String[] args) throws Exception {        Driver driver = DriverManager.getDriver("jdbc:mysql://localhost:3306/");        System.out.println("MySQL JDBC Driver Version: " + driver.getMajorVersion() + "." + driver.getMinorVersion());    }}这段代码会输出当前正在使用的 JDBC 驱动版本。
5. JDBC 驱动升级注意事项在升级 MySQL JDBC 驱动时,有几个重要的注意事项:
  • 兼容性测试:在生产环境中升级驱动前,一定要在测试环境中进行兼容性测试,确保应用程序不会因为驱动升级而出现问题。
  • 驱动配置参数:MySQL Connector/J 驱动的某些参数在不同版本中可能发生变化,升级时需要检查和调整参数,如 useSSL 参数的默认值在某些版本中发生了变化。
  • JDBC URL:某些版本中 JDBC URL 格式可能会有所改变,特别是涉及 SSL 连接、字符集和时区等配置时。

6. JDBC 驱动与 Java 版本的关系JDBC 驱动程序的不同版本对 Java 版本的要求也有所不同。以下是 MySQL JDBC 驱动与 Java 版本的兼容性:[td]
MySQL Connector/J 版本支持的 Java 版本
8.0.xJava 8 及以上
5.1.xJava 5, 6, 7, 8
5.0.xJava 5, 6
说明:
  • Connector/J 8.0.x:不再支持 Java 7 及以下版本,推荐使用 Java 8 或更高版本。
  • Connector/J 5.1.x:这是对 Java 5 到 8 的广泛支持,因此在使用较老版本的 Java 时,可能需要选择这个版本的驱动。

总结来说,选择合适的 MySQL JDBC 驱动版本需要根据 MySQL 数据库版本、Java 版本及项目需求来综合考量。建议在升级 MySQL 数据库版本时也同时更新 JDBC 驱动以保持兼容性和最佳性能。
上面太多文字了,这里直接放结论一. MySQL Connector/J 驱动版本和 MySQL 数据库版本的兼容性表[td]
MySQL Connector/J 版本支持的 MySQL 数据库版本
8.0.xMySQL 5.7, MySQL 8.0
5.1.xMySQL 5.5, MySQL 5.6, MySQL 5.7
5.0.xMySQL 5.0, MySQL 5.1
3.1.xMySQL 4.1, MySQL 5.0
3.0.xMySQL 3.x, MySQL 4.0
说明:
  • MySQL Connector/J 8.0.x
  • 这是最新的 MySQL JDBC 驱动程序版本,完全支持 MySQL 5.7 和 MySQL 8.0,并且向后兼容 MySQL 5.5 和 MySQL 5.6(尽管官方建议使用最新的驱动程序以确保最好的兼容性和性能)。
  • 支持 Java 8 及更高版本。
  • MySQL Connector/J 5.1.x
  • 这是最广泛使用的一个版本,主要支持 MySQL 5.5、5.6 和 5.7。
  • 支持 Java 5、6、7 和 8。
  • MySQL Connector/J 5.0.x 及以下版本
  • 主要与 MySQL 5.0 及更早版本兼容,这些版本相对较老,并且已经逐步被 MySQL 官方停止支持。
二. MySQL Connector/J 驱动下载1.进入下载官网 https://dev.mysql.com/downloads/ 2.点击Connector/J
3.选platform Independent选项
4.选择5.1.49版本并选择第二个下载


这里我提供一个下载直链,方便大家下载(这个是官网下载的文件)
mysql-connector-java-5.1.49.zip
mysql-connector-java-5.1.49.zip
我们只需要用到里面的一个文件,我提供一个下载直链,方便大家下载
mysql-connector-java-5.1.49.jar文件,下载后解压
https://file.rjasj.com/s/vEcX三.与IDEA建立连接
不知道怎么安装IDEA的可以看一下我的这一篇文章
IDEA 2024.2.3 最新破解版安装教程(附激活码,至2099年~) (rjasj.com)1.打开IDEA新建一个项目

2.在MYSQL_JDBC目录里面,新建一个lib目录
至于为什么要创建lib目录放jar驱动文件,是这样说的(可以不用了解)在 Java 项目中创建 lib 目录并将 JAR 文件放在其中是一种常见的项目组织方式,目的是为了管理项目的外部依赖。JAR(Java Archive)文件通常包含第三方库、框架或者工具包,使用 lib 目录来存放这些 JAR 文件可以让项目结构更加清晰、规范。下面是创建 lib 目录的原因和一些常见的实践。1. 为什么创建 lib 目录放 JAR 文件?a. 管理外部依赖Java 项目通常会使用许多第三方库(例如 MySQL 的 JDBC 驱动、日志库、JSON 处理库等)。这些库通常以 JAR 文件的形式发布,将这些 JAR 文件放在项目的 lib 目录中,便于统一管理所有外部依赖。b. 项目结构清晰将所有的 JAR 文件集中在 lib 目录下,可以保持项目目录的整洁,不至于让 JAR 文件与项目的源代码混在一起。这样也方便其他开发人员或构建工具快速找到依赖项。c. 简化项目部署在项目部署时,所有需要的 JAR 文件都在 lib 目录中,避免遗漏依赖库。当项目打包时,可以直接将 lib 目录一并打包,确保所有外部库都可以被正确加载和使用。d. 便于构建工具识别依赖在使用构建工具(如 Ant、Maven、Gradle)时,lib 目录往往是默认的依赖库存放位置。这样在构建项目时,工具可以自动加载 lib 目录中的所有 JAR 文件并加入到项目的 classpath 中。2. 常见的项目结构通常,在 Java 项目中,lib 目录位于项目的根目录下,与 src(源代码目录)等并列。示例项目结构:/project-root  ├── /src                # 源代码目录  │   ├── /com  │   │   └── /example  │   │       └── MyApp.java  ├── /lib                # JAR 文件目录  │   ├── mysql-connector-java-8.0.27.jar  │   ├── log4j-1.2.17.jar  └── build.xml           # 构建工具文件(如Ant)
  • /src:源代码目录,放置 Java 源代码文件。
  • /lib:JAR 文件目录,存放第三方库或工具包的 JAR 文件。
  • build.xml:构建脚本文件(如果使用 Ant),在构建过程中会引用 lib 目录下的 JAR 文件。
3. 如何使用 lib 目录中的 JAR 文件为了让 Java 项目能够访问 lib 目录中的 JAR 文件,你需要将这些 JAR 文件添加到项目的 classpath 中。a. 手动编译和运行如果你是通过命令行手动编译和运行 Java 程序,你可以使用 -classpath 或 -cp 参数将 lib 目录下的所有 JAR 文件添加到 classpath 中。编译:javac -cp "lib/*" src/com/example/MyApp.java -d out/
  • -cp "lib/*":将 lib 目录下的所有 JAR 文件添加到 classpath。
  • src/com/example/MyApp.java:指定源代码路径。
  • -d out/:指定输出目录为 out。
运行:java -cp "lib/*:out/" com.example.MyApp
  • -cp "lib/*:out/":将 lib 目录下的 JAR 文件和编译后的 out 目录一起添加到 classpath。
b. 在 IDE 中使用大多数现代的 Java IDE(如 IntelliJ IDEA、Eclipse)允许你轻松地将 lib 目录中的 JAR 文件作为项目依赖。
  • IntelliJ IDEA
  • 右键点击项目,在菜单中选择 "Open Module Settings"
  • "Libraries" 选项卡中,点击 "+",选择 lib 目录下的 JAR 文件。
  • 将这些 JAR 文件添加为项目依赖。
  • Eclipse
  • 右键点击项目,选择 "Properties"
  • 选择 "Java Build Path",然后点击 "Libraries" 选项卡。
  • 点击 "Add External JARs",选择 lib 目录中的 JAR 文件,确认即可。
c. 使用构建工具
  • Ant
    在 build.xml 文件中,你可以指定 lib 目录作为项目的依赖库路径。 示例 build.xml 配置:
  <project name="MyProject" basedir=".">    <path id="classpath">      <fileset dir="lib">        <include name="*.jar"/>      </fileset>    </path>    <target name="compile">      <javac srcdir="src" destdir="out" includeantruntime="false" classpathref="classpath" />    </target>    <target name="run" depends="compile">      <java classname="com.example.MyApp" classpath="out:lib/*">        <classpath refid="classpath"/>      </java>    </target>  </project>
  • MavenGradle:通常不需要手动创建 lib 目录,这些工具会自动管理依赖,但你仍然可以通过手动方式将本地 JAR 文件添加到它们的依赖管理中。
4. 项目中常见的第三方 JAR在 JDBC 项目中,常见的 JAR 文件通常包括以下几类:
  • MySQL JDBC 驱动:用于通过 Java 连接 MySQL 数据库,如 mysql-connector-java.jar。
  • 日志库:如 log4j.jar 或 slf4j.jar,用于处理日志输出。
  • JSON 处理库:如 gson.jar 或 jackson.jar,用于处理 JSON 数据。
  • 工具类库:如 Apache Commons 系列库,提供各种实用工具方法。
5. 总结在 Java 项目中创建 lib 目录来存放 JAR 文件有助于管理项目的外部依赖,保持代码结构清晰,并简化项目的编译和部署流程。通过将所有外部库集中在一个目录下,不仅可以让项目依赖项一目了然,还能确保在不同环境中运行项目时,所有依赖库都能被正确加载。
3.把mysql-connector-java-5.1.49.jar驱动拖放进去4.将jar驱动导入项目库
至于为什么要jar驱动文件导入项目库,是这样说的(可以不用了解)在 Java 项目中,导入 JDBC 驱动的 JAR 文件是连接和操作数据库的必要步骤。以下是将 JDBC 驱动 JAR 文件导入项目库的几个原因和具体步骤:原因
  • 数据库连接
  • JDBC 驱动提供了 Java 应用程序与数据库之间的通信桥梁。没有正确的驱动程序,Java 程序无法访问数据库。
  • 封装数据库操作
  • 驱动程序提供了方便的方法来执行 SQL 查询、更新数据和处理结果集,使得开发者可以简单地使用 Java 代码与数据库交互。
  • 多种数据库支持
  • JDBC 驱动支持多种数据库(如 MySQL、Oracle、PostgreSQL 等),通过导入不同的 JAR 文件,可以实现对不同数据库的支持。
  • 便于维护和管理
  • 将 JAR 文件集中在项目的 libraries 目录中,可以方便地管理和更新驱动版本,确保项目在不同环境中的一致性。
  • 依赖管理
  • 在构建工具(如 Maven、Gradle)中管理 JAR 依赖,使得构建过程更为自动化和高效,方便团队协作。
如何导入 JDBC 驱动的 JAR 文件以下是如何在 Java 项目中导入 JDBC 驱动 JAR 文件的步骤,以 IntelliJ IDEA 和 Eclipse 为例:在 IntelliJ IDEA 中:
  • 下载 JAR 文件
  • 访问 MySQL Connector/J 官方网站 下载适合你 MySQL 版本的 JDBC 驱动 JAR 文件。
  • 打开项目
  • 启动 IntelliJ IDEA 并打开你的 Java 项目。
  • 添加 JAR 文件
  • 右键单击项目根目录,选择 Open Module Settings(或者使用快捷键 F4)。
  • 在左侧选择 Libraries,然后点击右上角的 + 按钮。
  • 选择 Java,然后浏览到你下载的 JAR 文件,点击 OK。
  • 确认导入
  • 确认你添加的 JAR 文件出现在 Libraries 列表中,然后点击 Apply 和 OK。
在 Eclipse 中:
  • 下载 JAR 文件
  • 同样访问 MySQL Connector/J 官方网站 下载适合你 MySQL 版本的 JDBC 驱动 JAR 文件。
  • 打开项目
  • 启动 Eclipse 并打开你的 Java 项目。
  • 添加 JAR 文件
  • 右键单击项目名称,选择 Build Path -> Configure Build Path。
  • 在弹出的对话框中,选择 Libraries 选项卡,然后点击 Add External JARs。
  • 浏览到你下载的 JAR 文件,选择它并点击 Open。
  • 确认导入
  • 点击 Apply and Close 确认添加的 JAR 文件。
使用 JAR 文件的注意事项
  • 确保版本兼容:确保导入的 JDBC 驱动版本与数据库版本兼容,避免因版本不匹配导致的连接问题。
  • 在生产环境中:在生产环境中使用时,最好通过构建工具(如 Maven 或 Gradle)来管理 JAR 依赖,以提高可维护性和版本控制。
  • 随项目一起打包:如果你将项目打包为 JAR 或 WAR 文件,确保将 JDBC 驱动 JAR 包含在类路径中,以便在运行时能够访问数据库。
通过以上步骤和原因,你可以将 JDBC 驱动 JAR 文件导入到 Java 项目中,从而实现与数据库的连接和操作。



5.在src新建一个包,取名为dao
至于为什么,是这样说的(可以不用了解)在 Java 中通过 JDBC 连接 MySQL 时,创建一个包(Package) 是为了组织代码结构、管理类的可见性、避免类名冲突等。Java 中的包相当于一个命名空间,能够帮助开发者更好地组织项目代码。以下是通过 JDBC 连接 MySQL 时创建包的主要目的和步骤:1. 为什么要创建包?a. 组织代码结构在较大的 Java 项目中,创建包可以让代码更有条理。将相关的类、接口放在同一个包中,方便管理。例如,数据库相关的代码可以放在 db 或 database 包中,其他业务逻辑代码可以放在不同的包中。b. 避免类名冲突不同开发者可能会创建相同名称的类。通过包名,Java 可以区分不同包中的同名类,避免命名冲突。例如,你可以有 com.example.db.Connection 和 com.example.network.Connection,这两个类即使名称相同,也不会冲突。c. 控制类的可见性包还可以控制类和方法的访问权限。使用 public 关键字,类和方法可以在所有包中访问;如果不使用 public,它们在包外是不可见的。这种封装有助于提升代码的安全性和可维护性。2. JDBC 连接 MySQL 时创建包的作用在实际开发中,使用 JDBC 连接 MySQL 的代码通常会封装在一个专门的包中,比如 com.example.database。这样做的好处是:
  • 代码组织清晰:数据库连接和操作相关的类放在特定的包中,方便后期维护。
  • 模块化:将数据库连接逻辑封装在一个单独的类中,使用时只需调用该类中的方法,而不必每次都重复编写连接代码。
  • 提高复用性:如果未来需要连接其他数据库,只需在同一包中创建相应的类和方法。
3. 如何创建包?创建包的过程非常简单,具体步骤如下:a. 创建包(Package)在 Java 项目中,可以通过 package 关键字来声明一个包。示例:创建包 com.example.database在类的开头声明包名:package com.example.database;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class MySQLConnector {    private static final String URL = "jdbc:mysql://localhost:3306/yourDatabase";    private static final String USER = "root";    private static final String PASSWORD = "yourpassword";    public static Connection getConnection() throws SQLException {        return DriverManager.getConnection(URL, USER, PASSWORD);    }}
  • package com.example.database;:这是包的声明,它表明这个类属于 com.example.database 包。
  • import java.sql.*;:导入 JDBC 所需的类,如 Connection、DriverManager 等。
b. 使用包中的类当你在项目的其他地方使用该包中的类时,需要通过 import 导入类。import com.example.database.MySQLConnector;public class MainApp {    public static void main(String[] args) {        try {            Connection connection = MySQLConnector.getConnection();            System.out.println("Connected to the database!");        } catch (SQLException e) {            e.printStackTrace();        }    }}
  • import com.example.database.MySQLConnector;:导入你在 com.example.database 包中定义的 MySQLConnector 类。
4. 包名的命名规范
  • 包名通常是小写字母。
  • 包名可以使用公司域名的反向形式(如 com.example),这是一种常见的 Java 包命名方式。
  • 在包中组织类时,可以根据功能创建不同的子包,比如 com.example.database,com.example.service 等。
5. Java 项目结构示例假设我们有一个基于 Java 的简单应用项目,项目使用 JDBC 连接 MySQL。项目结构可以按包来组织,类似如下:/src  └── /com      └── /example          ├── /database          │   └── MySQLConnector.java          └── /service              └── UserService.java
  • com.example.database.MySQLConnector:这个类负责与 MySQL 数据库的连接。
  • com.example.service.UserService:这个类负责业务逻辑,比如用户操作(用户的创建、删除等),它会调用 MySQLConnector 类来访问数据库。
6. 总结在 Java JDBC 项目中创建包主要是为了组织代码结构提高代码复用性避免命名冲突管理访问权限。将数据库连接逻辑放在专门的包中有助于代码的维护和扩展,也可以提高代码的模块化和清晰性。
6.在dao包里面新建一个Java类,我这里取名为test


7.粘贴代码
package dao; // 指定类的包名为 dao,这样可以组织代码并避免命名冲突。

import com.mysql.jdbc.Driver; // 导入 MySQL 的 JDBC 驱动程序。
import java.sql.Connection; // 导入 JDBC 的 Connection 类,表示数据库连接。
import java.sql.SQLException; // 导入 SQLException 类,用于处理 SQL 异常。
import java.util.Properties;

public class test { // 定义一个名为 test 的公共类
    public static void main(String[] args) { // 主方法,程序入口
        Connection connect = null; // 声明 Connection 对象,初始为空

        try {
            Driver driver = new Driver(); // 创建 MySQL 驱动的实例,手动注册驱动

            // 定义数据库连接的 URL,jdbc:mysql:// 表示使用 MySQL 数据库,localhost:3306 是数据库服务器的地址和端口,db_09 是要连接的数据库名
            String url = "jdbc:mysql://localhost:3306/db_09?useSSL=false";

            // 创建 Properties 对象,用于存储数据库连接所需的属性
            Properties properties = new Properties();

            // 设置连接的用户名
            properties.setProperty("user", "root"); // 设置用户名为 root

            // 设置连接的密码
            properties.setProperty("password", "123456"); // 设置密码为 123456

            // 使用 Driver 的 connect 方法建立与数据库的连接,并将连接保存在 connect 变量中
            connect = driver.connect(url, properties);

            // 检查连接是否成功
            if (connect != null) { // 如果连接不为空,说明连接成功
                System.out.println("数据库连接成功!"); // 打印连接成功的消息

                // 这里可以添加其他逻辑,例如插入、更新或删除数据

            } else {
                System.out.println("数据库连接失败!"); // 如果连接为空,说明连接失败
            }

        } catch (SQLException e) { // 捕捉 SQLException 异常
            System.out.println("数据库连接出现异常: " + e.getMessage()); // 输出异常信息
        } finally {
            try {
                if (connect != null) {
                    connect.close(); // 关闭数据库连接
                }
            } catch (SQLException e) {
                System.out.println("关闭连接出现异常: " + e.getMessage()); // 输出关闭连接异常信息
            }
        }
    }
}

不加?useSSL=false报错
Sun Oct 06 01:30:10 CST 2024 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.数据库连接成功!Process finished with exit code 0
这里说一下为什么要加?useSSL=false,不加的话会有一个警告,但不影响这个警告信息表明你在使用 MySQL 数据库时,JDBC 驱动默认尝试建立一个 SSL 连接,但由于没有进行服务器的身份验证,导致了警告。MySQL 版本 5.5.45+、5.6.26+ 和 5.7.6+ 开始,SSL 连接默认启用,但为了兼容旧的应用程序,JDBC 驱动程序将 verifyServerCertificate 属性设置为了 false,这意味着服务器证书没有被验证。以下是解决此警告的两种主要方法:
1. 显式禁用 SSL如果你不需要使用 SSL 连接,可以通过在 JDBC 连接 URL 中添加 useSSL=false 来禁用 SSL。这样就不会出现 SSL 相关的警告。JDBC 连接 URL 示例:jdbc:mysql://localhost:3306/yourDatabase?useSSL=false这种方式适合你不需要加密连接的情况下使用。
2. 启用 SSL 并验证服务器证书如果你希望启用 SSL 并进行安全的连接,则需要显式设置 useSSL=true,并提供服务器的证书用于验证。你需要设置 trustStore 来存储服务器的证书。步骤如下:
  • 生成或获取服务器证书
  • 从 MySQL 服务器端获取公钥证书,或者使用自签名证书。
  • 将证书导入信任库(TrustStore)
  • 使用 keytool 命令将服务器的证书导入到 Java 的 TrustStore 中。例如:
    bash keytool -import -alias mysqlServerCACert -file server-cert.pem -keystore truststore.jks
  • 你可以指定自己的 keystore 文件,也可以使用 Java 默认的 cacerts 文件。
  • 配置 JDBC URL
  • 在 JDBC URL 中,设置 useSSL=true 并提供信任库的位置和密码。例如:
  • jdbc:mysql://localhost:3306/yourDatabase?useSSL=true&verifyServerCertificate=true&trustCertificateKeyStoreUrl=file:/path/to/truststore.jks&trustCertificateKeyStorePassword=yourTrustStorePassword
  • 这样会启用 SSL 并验证服务器的身份。

解决方法的选择:
  • 如果你只是在本地开发环境中,且不需要加密通信,可以选择 禁用 SSL
  • 如果在生产环境中,出于安全考虑,建议 启用 SSL 并验证服务器证书,确保通信是加密和安全的。

JDBC URL 中的相关参数解释:
  • useSSL:指定是否使用 SSL 进行连接。true 启用 SSL,false 禁用 SSL。
  • verifyServerCertificate:如果设置为 true,JDBC 会验证服务器的证书。
  • trustCertificateKeyStoreUrl:指定信任库(truststore)文件的 URL,用于存储服务器的公钥证书。
  • trustCertificateKeyStorePassword:指定访问信任库的密码。

通过以上方法,你可以避免 SSL 警告,并根据需求配置是否使用加密连接。8.运行,验证一下是否连接成功

我这里显示连接成功,至此IDEA使用JDBC连接MySQL数据库教程就完了

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表