本文以 MySQL 為例,手把手帶你完成 JDK 安裝、驅動配置、數據庫建表、JDBC 連接與查詢的全流程實戰,代碼可直接落地項目。
JAVA_HOME、PATH 配置)mysql-connector-java(Maven 坐標:mysql:mysql-connector-java:8.0.33)CREATE DATABASE scutcs CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE scutcs;
CREATE TABLE student (
sno CHAR(7) NOT NULL COMMENT '學號',
sname VARCHAR(20) NOT NULL COMMENT '姓名',
sex CHAR(2) NOT NULL COMMENT '性別',
bdate DATE NOT NULL COMMENT '出生日期',
height DECIMAL(5,2) DEFAULT 0.00 COMMENT '身高',
PRIMARY KEY (sno)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO student VALUES
('0104421','周遠行','男','1990-01-15',175.5),
('0208123','王義平','男','1991-03-22',168.0),
('0209120','王大力','男','1992-07-08',180.2),
('0309119','李 維','女','1993-11-30',160.5),
('0309203','歐陽美林','女','1994-05-18',165.0);
import java.sql.*;
public class JdbcDemo {
private static final String URL = "jdbc:mysql://127.0.0.1:3306/scutcs?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8";
private static final String USER = "root";
private static final String PASSWORD = "root";
public static void main(String[] args) {
// 1. 註冊驅動(JDBC 4.0+ 可省略 Class.forName)
// Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 獲取連接(try-with-resources 自動關閉)
try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD)) {
System.out.println("✅ 數據庫連接成功!");
// 3. 創建 Statement
try (Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT sno, sname FROM student")) {
// 4. 遍歷結果集
System.out.println("-----------------");
System.out.println("學號\t姓名");
System.out.println("-----------------");
while (rs.next()) {
String sno = rs.getString("sno");
String sname = rs.getString("sname");
System.out.println(sno + "\t" + sname);
}
}
} catch (SQLException e) {
System.err.println("❌ 數據庫操作異常:" + e.getMessage());
e.printStackTrace();
}
}
}
useSSL=false:禁用 SSL(本地開發常用)serverTimezone=Asia/Shanghai:避免時區警告characterEncoding=utf8:解決中文亂碼Connection、Statement、ResultSet,防止洩漏。舊版驅動需手動轉碼(new String(bytes, "ISO-8859-1"), "GB2312"),新版驅動(5.1.36+ / 8.0+)配合 characterEncoding=utf8 即可自動處理,無需手動干預。
conn.setAutoCommit(false) + commit()/rollback()addBatch() + executeBatch()掌握 JDBC 基礎流程是 Java 後端開發的必修課。實際項目中請直接使用成熟連接池 + ORM 框架,但理解底層原理有助於排查疑難雜症與性能調優。