##Druid連接池,目前全球最出名,也是最常用的連接池,阿里出品,好用到極點,你值得擁有


Druid連接池

在之前我分享過C3P0連接池這個工具類的用法以及具體的代碼,今天給大家介紹一款阿里提供的連接池,這也是以后我們常用的,畢竟現在這個連接池是全球公認的最出名,最好用的連接池工具類。

##一,Druid是一個JDBC組件,它包括三部分: 

  • DruidDriver 代理Driver,能夠提供基於Filter-Chain模式的插件體系。 

  • DruidDataSource 高效可管理的數據庫連接池。 

  • SQLParser 

##二,Druid可以做什么? 

  1) 可以監控數據庫訪問性能,Druid內置提供了一個功能強大的StatFilter插件,能夠詳細統計SQL的執行性能,這對於線上分析數據庫訪問性能有幫助。  

  2) 替換DBCPC3P0。Druid提供了一個高效、功能強大、可擴展性好的數據庫連接池。  

  3) 數據庫密碼加密。直接把數據庫密碼寫在配置文件中,這是不好的行為,容易導致安全問題。DruidDruiver和DruidDataSource都支持PasswordCallback。 

  4) SQL執行日志,Druid提供了不同的LogFilter,能夠支持Common-LoggingLog4j和JdkLog,你可以按需要選擇相應的LogFilter,監控你應用的數據庫訪問情況。 

  擴展JDBC,如果你要對JDBC層有編程的需求,可以通過Druid提供的Filter-Chain機制,很方便編寫JDBC層的擴展插件。

##三,下面我們來說下如何使用:

  ##1,導包:

    

  ##2,定義配置文件,這個不同於C3P0連接池,我們只需要放到src目錄下,它就會直接識別,druid需要我們手動設置

    * 優點:

      1,是properties形式的。

               

      2,可以叫任意名稱,可以放在任意目錄下。(我們一般還是習慣放在src下面)

  ##3,加載配置文件。Properties

  ##4,獲取數據連接池對象:通過工廠來獲取  DruidDataSourceFactory
  ##5,獲取連接:getConnection();
  ##6,下面我們來看下代碼

package cn.liurui.web.druid; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class JDBCUtils { //創建成員變量 private static DataSource ds; //加載配置文件 static { try { Properties pro = new Properties(); pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties")); //獲取dataSource連接池對象 DataSource dataSource = DruidDataSourceFactory.createDataSource(pro); } catch (IOException e) { e.printStackTrace(); } catch (Exception o){ o.printStackTrace(); } } /** * 獲取連接對象 */ public static Connection getConnection() throws SQLException { return ds.getConnection(); } /** * 釋放資源 */ public static void close(Statement stat,Connection conn){ close(null,stat,conn); } public static void close(ResultSet res,Statement stat,Connection conn){ if(res!=null){ try { res.close(); } catch (SQLException e) { e.printStackTrace(); } } if(stat!=null){ try { stat.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 獲取連接池 */ public static DataSource getDataSource(){ return ds; } }

Druid 的 JavaDoc 文檔請看:

http://tool.oschina.net/apidocs/apidoc?api=druid0.26


免責聲明!

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



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