Java實訓項目8:GUI學生信息管理系統 - 實現步驟 - 創建數據庫連接管理類

七、實現步驟

(四)創建數據庫連接管理類

在程序裏定義數據庫連接屬性常量,也可以將數據庫連接屬性值寫入數據庫配置文件,並且保存在項目內,在程序中讀取文件中的信息,拿到數據庫連接屬性值,從而進行數據庫連接。

方法1、在程序裏定義數據庫連接屬性常量

  • 在src裏創建net.hw.student.dbutil包
    在這裏插入圖片描述
  • 在包裏創建數據庫連接管理類ConnectionManager
    在這裏插入圖片描述
package net.hw.student.dbutil;

import javax.swing.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 功能:數據庫連接管理類
 * 作者:華衛
 * 日期:2020年06月05日
 */
public class ConnectionManager {   
    private static final String DRIVER = "com.mysql.jdbc.Driver"; // 數據庫驅動程序    
    private static final String URL = "jdbc:mysql://localhost:3306/student"; // 數據庫統一資源標識符   
    private static final String USER = "root"; // 數據庫用戶  
    private static final String PASSWORD = "root"; // 數據庫密碼

    /**
     * 私有化構造方法,拒絕實例化
     */
    private ConnectionManager() {
    }

    /**
     * 獲取數據庫連接靜態方法
     *
     * @return 數據庫連接對象
     */
    public static Connection getConnection() {
        // 定義數據庫連接
        Connection conn = null;

        try {
            // 安裝數據庫驅動程序
            Class.forName(DRIVER);
            // 獲取數據庫連接
            conn = DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }

        // 返回數據庫連接
        return conn;
    }

    /**
     * 關閉數據連接靜態方法
     *
     * @param conn
     */
    public static void closeConnection(Connection conn) {
        // 判斷數據庫連接是否非空
        if (conn != null) {
            try {
                // 判斷連接是否未關閉
                if (!conn.isClosed()) {
                    // 關閉數據庫連接
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 主方法:測試兩個靜態方法
     *
     * @param args
     */
    public static void main(String[] args) {
        // 獲取數據庫連接
        Connection conn = getConnection();
        // 判斷數據庫連接是否成功
        if (conn != null) {
            JOptionPane.showMessageDialog(null, "恭喜,數據庫連接成功!");
        } else {
            JOptionPane.showMessageDialog(null, "遺憾,數據庫連接失敗!");
        }
        // 關閉數據庫連接
        closeConnection(conn);
    }
}
  • 說明:private static final String PASSWORD = "root"; 密碼值改成你電腦上MySQL的密碼。

  • 運行程序,測試數據庫連接是否成功
    在這裏插入圖片描述

  • 單擊【確定】按鈕,應用程序正常結束
    在這裏插入圖片描述

方法2、從數據庫配置文件裏讀取屬性值

  • 在項目根目錄裏創建數據庫配置文件jdbc.properties
    在這裏插入圖片描述
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/student
user=root
password=root
  • 修改ConnectionManager代碼
package net.hw.student.dbutil;

import javax.swing.*;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/**
 * 功能:數據庫連接管理類
 * 作者:華衛
 * 日期:2020年06月05日
 */
public class ConnectionManager {
    // 聲明數據庫連接屬性變量
    private static String driver;
    private static String url;
    private static String user;
    private static String password;

    /**
     * 私有化構造方法,拒絕實例化
     */
    private ConnectionManager() {
    }

    /**
     * 獲取數據庫連接靜態方法
     *
     * @return 數據庫連接對象
     */
    public static Connection getConnection() {
        // 定義數據庫連接
        Connection conn = null;
        // 創建Properties對象
        Properties pps = new Properties();
        try {
            // 加載屬性配置文件test.properties
            pps.load(new FileReader("jdbc.properties"));
            // 獲取數據庫連接屬性
            driver = pps.getProperty("driver");
            url = pps.getProperty("url");
            user = pps.getProperty("user");
            password = pps.getProperty("password");
            // 安裝數據庫驅動程序
            Class.forName(driver);
            // 獲取數據庫連接
            conn = DriverManager.getConnection(url, user, password);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
        }

        // 返回數據庫連接
        return conn;
    }

    /**
     * 關閉數據連接靜態方法
     *
     * @param conn
     */
    public static void closeConnection(Connection conn) {
        // 判斷數據庫連接是否非空
        if (conn != null) {
            try {
                // 判斷連接是否未關閉
                if (!conn.isClosed()) {
                    // 關閉數據庫連接
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 主方法:測試兩個靜態方法
     *
     * @param args
     */
    public static void main(String[] args) {
        // 獲取數據庫連接
        Connection conn = getConnection();
        // 判斷數據庫連接是否成功
        if (conn != null) {
            JOptionPane.showMessageDialog(null, "恭喜,數據庫連接成功!");
        } else {
            JOptionPane.showMessageDialog(null, "遺憾,數據庫連接失敗!");
        }
        // 關閉數據庫連接
        closeConnection(conn);
    }
}
  • 運行程序,查看結果
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章