JDBC工具類:JDBCUtils


1. 目的

  每次使用JDBC的時候都要書寫冗長的代碼段,不符合復用的理念,於是要單獨寫一個類,將通用的JDBC操作寫到一個類中,便於重復使用和精簡代碼。

 

2. 步驟

  (1)注冊驅動並獲取連接

    為了最大精簡獲取連接的簡化性和通用性,這里需要使用到配置文件 jdbc.properties 解決。

    1) 創建一個文件,放到項目中,要更換別的連接時,只需修改配置文件即可,無需修改類文件和重新編譯。

    driver=數據庫驅動路徑     url=url連接字符串     user=用戶名     password=密碼

    2) 然后就需要將配置文件中鍵值對中的值取出,並注冊了驅動。因為驅動和取出配置文件只需要一次就可以,所以就寫入到靜態代碼塊中,在程序運行的開始就處理好了,無需以后再冗余執行。

// 定義靜態變量,使用靜態代碼獲取配置文件的值
    private static String url; private static String user; private static String password; private static String driver; // 使用靜態代碼注冊驅動並給靜態變量賦值
    static{ try { // 創建Properties集合類
            Properties pro = new Properties(); // 獲取src路徑下文件,使用ClassLoader類加載器
            ClassLoader classLoader = JDBCUtils.class.getClassLoader(); // URL定位了文件的絕對路徑
            URL res = classLoader.getResource("jdbc.properties"); // 獲取字符串路徑
            String path = res.getPath(); // 讀取文件
            pro.load(new FileReader(path)); // 給靜態變量賦值
            url = pro.getProperty("url"); user = pro.getProperty("user"); password = pro.getProperty("password"); driver = pro.getProperty("driver"); // 注冊驅動
 Class.forName(driver); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } }

    3) 獲取連接

public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); }

  (2)釋放資源

    因為有的sql語句需要用結果集對象,所以使用兩個重載方法釋放資源。

/** * @Author ZhaoPeiXuan * @Description 釋放資源 * @Date 22:08 2019/9/16 * @Param [stmt 執行sql的對象, conn 數據庫連接對象] * @return void **/
    public static void close(Statement stmt, Connection conn){ if(stmt != null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * @Author ZhaoPeiXuan * @Description 釋放資源Pro版 * @Date 22:13 2019/9/16 * @Param [rs 結果集對象, stmt 執行sql的對象, conn 數據庫連接對象] * @return void **/
    public static void close(ResultSet rs, Statement stmt, Connection conn){ if(rs != null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(stmt != null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }

 

3. 簡化后的代碼

  Connection conn = null;   Statement stmt = null;   ResultSet rs = null;   try {     conn = JDBCUtils.getConnection();     String sql = "SQL語句";     stmt = conn.createStatement();     rs = stmt.executeQuery(sql);   } catch (SQLException e) {     e.printStackTrace();   } finally {     JDBCUtils.close(rs, stmt, conn);   } 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM