[Java] JDBC的使用方法,“仅需无脑复制,即可链接MySQL” (最易方法 & 优化方法)

本文介绍了如何使用Java的JDBC连接MySQL8.0数据库,强调了不同版本MySQL驱动的差异,com.mysql.cj.jdbc.Driver的使用,以及通过URL、用户名和密码建立连接。还提到了通过.properties文件实现代码与配置的分离,以更方便地管理数据库连接信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明

请读者欲从本文中一键连接MySQL的话,请注意自己MySQL的版本号(此文是版本 8)。请注意以下内容:⚠️

  1. mysql-connector-java-8.0.21.jar 包的引入问题;
  2. MySQL版本是8的话,驱动是:com.mysql.cj.jdbc.Driver
  3. MySQL版本是5的话,驱动是:com.mysql.jdbc.Driver
  4. URL的准确性问题;
  5. MySQL用户名和密码是否输入正确。

JDBC的要素

要素一:

  1. Driver 驱动,是Java提供的一个接口,可以去链接数据库。
  2. 数据库厂商提供的类:(全类名),需要动态加载,获取运行时对象。
  3. 需要用到反射:Class.forName("");

MySQL :

  1. 版本8之前:com.mysql.jdbc.Driver
  2. 版本8之后: com.mysql.cj.jdbc.Driver

jar包的引入: 分享链接:mysql-connector-java-8.0.21.jar

  1. 把jar包拷贝到Java工程的一个目录中,习惯上新建一个叫lib文件夹。

  2. 把jar包拷贝到lib里,需要把lib添加到项目的依赖库中。
    请添加图片描述

  3. 在lib上右键,点击add as library,添加到项目库中。
    请添加图片描述
    步骤:

  4. 加载驱动 Class.forName();

  5. 注册驱动 DriverManager.registerDriver() 注册驱动。

要素二:

URL:协议,数据库名,IP地址,端口号,参数

MySQL 8:

jdbc:mysql://127.0.0.1:3306/数据库库名?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC

要素三:

用户名,密码

"root", "12345678"

1. 最简单的链接方式和使用:

package JDBCLearning;

import java.sql.*;

/**
 * @date 2023/2/1
 */
public class JdbcDemo01 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        // 1. 导入mysql驱动jar包
        // 2. 注册mysql驱动jdbc,当前我们使用mysql数据库
        Class.forName("com.mysql.cj.jdbc.Driver");

        // 3. 创建数据库链接 jdbc协议
        Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/sql_invoicing?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC", "root", "12345678");

        // 4. 获取到执行者对象
        Statement statement = connection.createStatement();

        // 5. 执行开发者自己编写的sql语句
        ResultSet resultSet = statement.executeQuery("select * from clients");

        // 6. 执行sql语句的结果处理操作
        while (resultSet.next()){ // 判断如果下一行数据存在,则取出该行数据;如果没有则返回false。
            int clientId = resultSet.getInt("client_id");
            String name = resultSet.getString("name");
            String address = resultSet.getString("address");
            String city = resultSet.getString("city");
            String state = resultSet.getString("state");
            String phone = resultSet.getString("phone");
            System.out.println("client_id: " + clientId);
            System.out.println("name: " + name);
            System.out.println("address: " + address);
            System.out.println("city: " + city);
            System.out.println("state: " + state);
            System.out.println("phone: " + phone);
            System.out.println("==========================");
        }

        // 7. 关闭这些资源
        connection.close();
        statement.close();
    }
}

请添加图片描述

2. 最推荐的链接方式:

  1. src的目录里创建 .properties文件
    请添加图片描述
  2. .properties文件里输入:
mysql.url=jdbc:mysql://127.0.0.1:3306/sql_invoicing?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
mysql.driverName=com.mysql.cj.jdbc.Driver
mysql.username=root
mysql.password=12345678
  1. 配合.properties文件链接数据库:
package JDBCLearning.NewJDBCconnection;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/**
 * @date 2023/2/1
 */
public class jdbcConnection {
    public void test4() throws IOException, SQLException {
        Properties properties = new Properties();
        properties.load(jdbcConnection.class.getClassLoader().getResourceAsStream("jdbc.properties"));

        String url = properties.getProperty("mysql.url");
        String username = properties.getProperty("mysql.username");
        String password = properties.getProperty("mysql.password");

        Connection connection = DriverManager.getConnection(url, username, password);
        System.out.println(connection);
        /*
            使用配置文件的好处:
            1、实现了代码和配置的分离,如果需要修改配置信息,直接在配置文件中修改,不需要动代码。
            2、如果修改了配置信息,不需要重新编译。
         */
    }
}

请添加图片描述

结语 🎆

赠人玫瑰手留余香,一个人做的的恶和善定符合能量守恒,不必介怀别人说了什么,怎么评价你。你就是你,唯一的你、独特的你,无可替代。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Chae_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值