『Java』JDBC Connection连接MySQL数据库_驱动注册的代码实现分析

驱动下载

Java连接MySQL需要下载驱动jar包

MySQL :: Download Connector/J

选择Platfrom Independent
在这里插入图片描述
免注册下载
在这里插入图片描述

导入包与IDEA配置

解压得到mysql-connector-java-8.x.x.jar,放入%JAVA_HOME%/jre/lib/ext归档
在这里插入图片描述
IDEA选择项目结构
在这里插入图片描述
SDK导入jar包
在这里插入图片描述
为了方便数据库操作,把IDEA也连上数据库,选择右边栏的数据库,MySQL模板将驱动添加进去,这里默认IDEA自带了一个,还是手动选择下载的驱动
在这里插入图片描述
添加连接
在这里插入图片描述

Java连接数据库

首先写入测试数据,之前配置过IDEA能连接数据库就很方便了
在这里插入图片描述

JDBC Connection

JDBC(Java Database Connectivity)是Java提供对数据库的API,其定义了一个java.sql.Driver接口负责数据库的连接。

注册驱动

连接数据库需要先注册数据库驱动,Java通过java.sql.DriverManager来管理所有数据库的驱动注册。对于刚刚下载的MySQL驱动,它的类名是com.mysql.cj.jdbc.Driver,它是MySQL8+的驱动,而在低版本MySQL5的驱动是com.mysql.jdbc.Driver,前者向下兼容后者。加载该类就完成了注册

String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
Class.forName(JDBC_DRIVER);

Class.forName注册实现

调用Class.forName()能够加载该类,这是利用反射加载一个类,追一下被加载的com.mysql.cj.jdbc.Driver
在这里插入图片描述
该类有一个静态代码块,被加载就会运行,用以注册驱动。

建立连接

注册完成后要建立连接,调用之前提到的java.sql.DriverManager驱动注册管理器的方法获取连接

String URL = "jdbc:mysql://127.0.0.1:3306/testtest";
String USERNAME = "xxx";
String PASSWORD = "xxx";
Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);

需要声明MySQL的URL,以及用户信息,URL的规则如下:

jdbc:mysql://{host::localhost}?[:{port::3306}][/{database}?][\?<&,user={user},password={password},{:identifier}={:param}>]

使用的是jdbc协议,一般还可以添加属性,如:启用unicode字符集?useUnicode=true

创建Statement对象

建立连接后要声明执行语句,调用Connect的createStatement或是预处理prepareStatement方法获取

String sql = "select id,passwd from testtest";
// Statement state = conn.createStatement(sql);
PreparedStatement pre = conn.prepareStatement(sql);

查询

查询有三种

Statement.execute(); // 任意
Statement.executeQuery(); // 查询
Statement.executeUpdate(); // 增删改

查询结果以ResultSet结果集返回

ResultSet results = pre.executeQuery();

结果集支持迭代器的next方法,依次获取字段即可

while (results.next()){
	System.out.println(results.getInt("id"));
	System.out.println(results.getString("passwd"));
}

关闭连接

用完要记得关闭

results.close();
pre.close();
conn.close();

连接数据库测试

package DBMS;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class GetConnection {
	// 主协议jdbc 子协议mysql 数据库testtest
    static final String URL = "jdbc:mysql://127.0.0.1:3306/testtest";
    static final String USERNAME = "xxx";
    static final String PASSWORD = "xxx";
    static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";

    public static void main(String[] args) throws Exception {
        Class.forName(JDBC_DRIVER);
        Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        String sql = "select id,passwd from testtest";
        PreparedStatement pre = conn.prepareStatement(sql);
        ResultSet results = pre.executeQuery();
        while (results.next()){
            System.out.println(results.getInt("id"));
            System.out.println(results.getString("passwd"));
        }
        results.close();
        pre.close();
        conn.close();
    }
}

在这里插入图片描述

欢迎在评论区留言,欢迎关注我的CSDN @Ho1aAs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值