首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java Web 連接 MySQL 完整實戰教程:從建表到 JDBC 代碼實現

     編輯:Java 綜合教學

前言

在 Java Web 開發中,數據庫連接是核心基礎技能之一。本文將通過一個完整的實戰案例,手把手教你從零開始搭建 Java Web 連接 MySQL 的完整流程,涵蓋數據庫建表、數據插入、JDBC 連接類封裝以及測試驗證等關鍵步驟。

一、準備工作:創建數據庫與數據表

1.1 創建數據庫

首先在 MySQL 中創建一個名為 jdbc 的數據庫:

CREATE DATABASE jdbc;

1.2 創建學生信息表

在 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
);

1.3 插入測試數據

向表中插入一條測試記錄:

INSERT INTO stu10 VALUES (1, '碼-奴', '20', '浙江嘉興');

二、核心代碼實現:JDBC 連接封裝

2.1 數據庫連接工具類

創建 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 以上版本可自動加載,但顯式加載更保險。
  • 連接參數:URL 格式為 jdbc:mysql://主機:端口/數據库名,需根據實際環境修改。
  • 資源管理:提供 closeConnection 方法確保連接正確釋放,避免連接泄漏。

三、測試驗證:查詢學生信息

3.1 測試類實現

編寫 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); // 確保連接關閉
        }
    }
}

3.2 代碼優化亮點

  • 使用 try-with-resources 語法自動關閉 Statement 和 ResultSet,代碼更簡潔安全。
  • 採用列名 rs.getInt("id") 而非索引,增強代碼可讀性與維護性。
  • 增加連接為空判斷與 finally 塊,保證連接必被關閉。

四、常見問題與最佳實踐

4.1 MySQL 8.0+ 版本注意事項

  • 驅動類名變更為 com.mysql.cj.jdbc.Driver
  • URL 建議添加時區參數:?serverTimezone=UTC 或 Asia/Shanghai
  • 需配置 SSL 參數:useSSL=false (開發環境)

4.2 生產環境建議

  • 使用 連接池 (如 HikariCP、Druid) 替代手動創建連接
  • 配置文件管理數據庫參數,避免硬編碼
  • 採用 PreparedStatement 防止 SQL 注入
  • 異常處理應拋出自定義異常而非僅打印堆棧

五、總結

本文通過完整的代碼示例展示了 Java Web 連接 MySQL 的標準流程:建庫建表 → 封裝連接類 → 編寫測試驗證。掌握這套基礎流程後,建議進一步學習連接池技術、ORM 框架 (MyBatis/Hibernate) 以及事務管理,提升企業級開發能力。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved