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

Java 連接 MySQL 資料庫完整範例教學

     編輯:Java 相關知識

Java 連接 MySQL 資料庫實作指南

本文提供一個完整的 Java 連接 MySQL 資料庫工具類範例,包含資料庫連線管理、預處理語句執行、結果集處理以及資源關閉等核心功能。此範例採用單例模式管理資料庫連線,適合中小型專案快速整合。

核心功能說明

  • 連線管理:靜態方法 getConnection() 封裝 DriverManager 邏輯,支援 JDBC URL、帳號密碼配置
  • 資源釋放:closeInfo() 統一關閉 Connection、PreparedStatement、ResultSet,避免記憶體洩漏
  • 查詢操作:resultSet() 支援參數化 SQL 查詢,回傳 ResultSet 物件
  • 增刪改操作:result() 執行 UPDATE/INSERT/DELETE,回傳布林值表示是否成功

完整程式碼實作

package sns.team6.util;

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

/**
 * 資料庫連線輔助類
 * @author 徐銳
 */
public class DBHelper {
    
    // MySQL 驅動類別名稱
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    // 資料庫連線 URL
    private static final String URL = "jdbc:mysql://localhost:3306/snsteam6";
    // 資料庫帳號
    private static final String USERNAME = "root";
    // 資料庫密碼
    private static final String PASSWORD = "root";

    /**
     * 取得資料庫連線物件
     * @return Connection 物件,連線失敗回傳 null
     */
    public static Connection getConnection() {
        Connection conn = null;
        try {
            Class.forName(DRIVER);
            conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * 關閉資料庫相關資源
     * @param conn 連線物件
     * @param pst 預處理語句物件
     * @param rst 結果集物件
     */
    public static void closeInfo(Connection conn, PreparedStatement pst, ResultSet rst) {
        try {
            if (rst != null) {
                rst.close();
            }
            if (pst != null) {
                pst.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 執行查詢並回傳結果集
     * @param sql SQL 查詢語句
     * @param params 參數陣列,可為 null
     * @return ResultSet 物件,異常時回傳 null
     */
    public static ResultSet resultSet(String sql, Object[] params) {
        Connection conn = null;
        PreparedStatement pst = null;
        ResultSet rst = null;
        try {
            conn = DBHelper.getConnection();
            pst = conn.prepareStatement(sql);
            if (params != null && params.length > 0) {
                for (int i = 0; i < params.length; i++) {
                    pst.setObject(i + 1, params[i]);
                }
            }
            rst = pst.executeQuery();
        } catch (SQLException e) {
            rst = null;
            e.printStackTrace();
        }
        return rst;
    }

    /**
     * 執行增刪改操作
     * @param sql SQL 執行語句
     * @param params 參數陣列,可為 null
     * @return 執行成功回傳 true,否則 false
     */
    public static boolean result(String sql, Object[] params) {
        boolean flag = false;
        Connection conn = null;
        PreparedStatement pst = null;
        try {
            conn = DBHelper.getConnection();
            pst = conn.prepareStatement(sql);
            if (params != null && params.length > 0) {
                for (int i = 0; i < params.length; i++) {
                    pst.setObject(i + 1, params[i]);
                }
            }
            int row = pst.executeUpdate();
            if (row > 0) {
                flag = true;
            }
        } catch (SQLException e) {
            flag = false;
            e.printStackTrace();
        }
        return flag;
    }
}

使用注意事項

  1. 請確保專案已加入 MySQL JDBC 驅動 JAR 檔(mysql-connector-java)
  2. 實際專案中建議使用連線池(如 HikariCP、Druid)替代單一連線
  3. 資料庫帳號密碼應透過配置檔管理,避免硬編碼在程式碼中
  4. 生產環境務必啟用 SSL 連線並設定適當的連線超時參數

進階優化建議

若專案規模較大,建議引入 Spring JDBC Template 或 MyBatis 等持久層框架,可進一步簡化資料庫操作程式碼,提升開發效率與維護性。

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