【JDBC + MySQL】〖程式碼〗JDBCUtils工具類(MySQL8)

江奈河發表於2020-12-07

〖程式碼〗JDBCUtils工具類

package utils;

import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;

public class JDBCUtils {
    private static String driver; 	// 驅動名
    private static String url; 		// 資料庫地址
    private static String user; 	// 資料庫使用者名稱
    private static String password; // 資料庫密碼

    /*
     * 讀取JDBC配置檔案(寫在靜態程式碼塊中,這樣讀取只進行一次)
     */
    static {
        // 1.建立Properties集合類
        Properties pro = new Properties();
        try {
            // 2.獲取src路徑下的配置檔案的路徑
            ClassLoader classLoader = JDBCUtils.class.getClassLoader();
            URL jdbcUrl = classLoader.getResource("properties/jdbc.properties");
            String jdbcPath = null;
            if (jdbcUrl != null) {
                jdbcPath = jdbcUrl.getPath();
            }
            // 3.根據路徑獲取jdbc.properties配置檔案
            FileReader jdbcFile = null;
            if (jdbcPath != null) {
                jdbcFile = new FileReader(jdbcPath);
            }
            // 4.讀取檔案
            pro.load(jdbcFile);
            // 5.獲取配置檔案中的引數並賦值
            driver = pro.getProperty("driver");
            url = pro.getProperty("url");
            user = pro.getProperty("user");
            password = pro.getProperty("password");
            // 6.註冊驅動
            Class.forName(driver);
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }

    }

    /*
     * 獲取連線
     */
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, user, password);
    }

    /*
     * 關閉連線
     */
    public static void close(ResultSet rs, PreparedStatement pst, Connection con) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (pst != null) {
            try {
                pst.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (con != null) {
            try {
                con.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
    public static void close(Connection con) {
        if (con != null) {
            try {
                con.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }
}


我尋見一片海 碧藍且耀著光
大片船隻航行其上 都向著遠方

                         Shared by Foriver_江河



© 1997-8023 江河 All Rights Reserved.

相關文章