JDBCUtil工具類

使用JDBC來連接MySQL數(shù)據(jù)庫,在各個方法中都要添加驅(qū)動、建立連接、釋放資源等,會造成代碼的冗余和復(fù)雜,所以將相同部分抽取出來,建立一個JDBCUtil的工具類,從.properties配置文件中讀取數(shù)據(jù),進(jìn)行驅(qū)動和連接部分的實現(xiàn),使用時直接調(diào)用即可。

package com.thoughtworks.Util;

import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Objects;
import java.util.Properties;

public class JDBCUtil {
    private static String URL;
    private static String USER;
    private static String PASSWORD;
    private static String DRIVER;
    static{
        //讀取資源文件,獲取相應(yīng)的值
        try {
            //1.創(chuàng)建Properties集合類
            Properties prop = new Properties();
            //獲取src路徑下的文件的方式---->ClassLoader類加載器
            URL pathURL = JDBCUtil.class.getClassLoader().getResource("jdbc.properties");
            String path = Objects.requireNonNull(pathURL).getPath();
            //2.加載文件
            prop.load(new FileReader(path));
            //3.獲取數(shù)據(jù)、賦值
            URL = prop.getProperty("url");
            USER = prop.getProperty("user");
            PASSWORD = prop.getProperty("password");
            DRIVER = prop.getProperty("driver");
            //注冊驅(qū)動
            Class.forName(DRIVER);
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }

    public static void releaseSource(Statement stmt, Connection conn) {
        if(null != stmt) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(null != conn) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void releaseSource(ResultSet res, Statement stmt, Connection conn) {
        if(null != res) {
            try {
                res.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        releaseSource(stmt,conn);
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,238評論 0 4
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,011評論 0 11
  • 1.jdbc簡介(本文使用的數(shù)據(jù)庫為MySQL) 1.1)JDBC(Java DataBase Connect...
    無所事事的考拉閱讀 1,595評論 0 1
  • 本文主要內(nèi)容 1、JDBC 2、DBUtils 01JDBC概念和數(shù)據(jù)庫驅(qū)動程序 A: JDBC概念和數(shù)據(jù)庫驅(qū)動程...
    勝浩_ae28閱讀 494評論 0 0
  • JDBC簡介 SUN公司為了簡化、統(tǒng)一對數(shù)據(jù)庫的操作,定義了一套Java操作數(shù)據(jù)庫的規(guī)范,稱之為JDBC。JDBC...
    奮斗的老王閱讀 1,638評論 0 51

友情鏈接更多精彩內(nèi)容