在 Java Web 開發中,數據庫連接是核心基礎技能之一。本文將通過一個完整的實戰案例,手把手教你從零開始搭建 Java Web 連接 MySQL 的完整流程,涵蓋數據庫建表、數據插入、JDBC 連接類封裝以及測試驗證等關鍵步驟。
首先在 MySQL 中創建一個名為 jdbc 的數據庫:
CREATE DATABASE jdbc;
在 jdbc 數據庫下創建學生表 stu10,包含主鍵 ID、姓名、年齡、地址四個字段:
CREATE TABLE stu10 (
id INT(10) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
age VARCHAR(10) NOT NULL,
address VARCHAR(20) NOT NULL
);
向表中插入一條測試記錄:
INSERT INTO stu10 VALUES (1, '碼-奴', '20', '浙江嘉興');
創建 Jdbc_con 類,封裝獲取連接與關閉連接的邏輯,採用單例模式思想管理連接資源:
package com.tu.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Jdbc_con {
// 獲取數據庫連接
public Connection getConnection() {
try {
// 1. 加載 MySQL JDBC 驅動 (MySQL 8.0+ 建議使用 com.mysql.cj.jdbc.Driver)
Class.forName("com.mysql.jdbc.Driver");
// 2. 建立連接:url、用戶名、密碼
// 注意:實際項目中建議將配置信息外置到 properties 文件
return DriverManager.getConnection(
"jdbc:mysql://localhost:3306/jdbc", "root", "123");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
// 安全關閉連接
public void closeConnection(Connection con) {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Class.forName() 動態加載驅動類,JDBC 4.0 以上版本可自動加載,但顯式加載更保險。jdbc:mysql://主機:端口/數據库名,需根據實際環境修改。closeConnection 方法確保連接正確釋放,避免連接泄漏。編寫 Test 類調用連接工具類,執行 SQL 查詢並遍歷結果集:
package com.tu.jdbc;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {
public static void main(String[] args) {
new Test().list();
}
public void list() {
Jdbc_con jc = new Jdbc_con();
Connection conn = jc.getConnection();
if (conn == null) {
System.out.println("數據庫連接失敗!");
return;
}
String sql = "SELECT id, name FROM stu10";
try (Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
System.out.println("ID: " + id + ", 姓名: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
jc.closeConnection(conn); // 確保連接關閉
}
}
}
Statement 和 ResultSet,代碼更簡潔安全。rs.getInt("id") 而非索引,增強代碼可讀性與維護性。finally 塊,保證連接必被關閉。com.mysql.cj.jdbc.Driver?serverTimezone=UTC 或 Asia/ShanghaiuseSSL=false (開發環境)PreparedStatement 防止 SQL 注入本文通過完整的代碼示例展示了 Java Web 連接 MySQL 的標準流程:建庫建表 → 封裝連接類 → 編寫測試驗證。掌握這套基礎流程後,建議進一步學習連接池技術、ORM 框架 (MyBatis/Hibernate) 以及事務管理,提升企業級開發能力。