使用JDBC建立數據庫連接的過程

總體來說,一套完整的JDBC的使用過程分爲六個步驟

載入數據庫驅動

Class.forName(DBDRIVER);

創建連接

Connection conn = (Connection) DriverManager.getConnection(DBURL, DBUSER, DBPASS);

創建語句

PreparedStatement ps = (PreparedStatement) conn.prepareStatement(sql);

執行語句

ResultSet rs = ps.executeQuery();

處理結果

關閉數據庫連接

加載數據庫驅動是一件相當耗費資源的工作。因此在使用JDBC作爲APPLICATION連接數據庫的手段時,經常要通過建立工具類的方式來對代碼進行優化

首先,工具類應該是單例的,這樣可以保證在內存中只存在一個數據庫驅動的實例,減少資源佔用

在工具類中,首先使用靜態代碼塊加載數據庫驅動

既然是單例的,那麼首先必須有一個方法來獲得一個該類的實例

public static JdbcUtilsSingleton getInstance() {
  //雙重檢驗應用程序中是否存在單例類的實例
  if (instance == null){
   //同步
   synchronized (JdbcUtilsSingleton.class) {
    if (instance == null){
     //延遲加載實例
     instance = new JdbcUtilsSingleton();
    }
   }
  }
  return instance;
 }

工具類的方法一般包括兩個主要方法,

一是返回一個數據庫的連接實例

public Connection getConnection() throws SQLException{
  return (Connection) DriverManager.getConnection(DBURL, DBUSER, DBPASS);
 }

二是負責關閉數據庫的連接

public void free(ResultSet rs, Statement st, Connection conn){
  try {
   if (rs != null){
    rs.close();
    System.out.println("關閉查詢結果集");
   }
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   try {
    if (st != null){
     st.close();
     System.out.println("關閉查詢");
    }
   } catch (SQLException e) {
    e.printStackTrace();
   } finally {
    try {
     if (conn != null){
      conn.close();
      System.out.println("關閉連接");
     }
    } catch (SQLException e) {
     e.printStackTrace();
    } finally {
     
    }
   }
  }
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章