數據源和數據庫鏈接池

  Java中的數據源就是javax.sql.DataSource。DataSource的建立能夠有不一樣的實現。DataSource 一般被稱爲數據源,它包含鏈接池和鏈接池管理兩個部分,習慣上也常常把 DataSource 稱爲鏈接池。java

 

  JNDI方式建立DataSource:  (Java Naming and Directory Interface,Java命名和目錄接口)。首先要配置數據源的相關鏈接信息,也就是數據源鏈接池。該配置應該在Tomcat安裝目錄下的conf/context.xml文件中配置。mysql

  

 

鏈接池基本的思想,原理:sql

  在系統初始化的時候,將數據庫鏈接做爲對象存儲在內存中,當用戶須要訪問數據庫時,並不是創建一個新的鏈接,而是從鏈接池中取出一個已創建的空閒鏈接對象。數據庫

數據庫鏈接池負責分配,管理和釋放數據庫鏈接,它容許應用程序重複使用一個現有的數據庫鏈接,而不是從新創建一個。網站

鏈接池通俗理解:  ui

  數據庫鏈接池就是準備一個池子,裏面放着不少生成好的Connection,用戶請求得到鏈接,就不須要getConnection,只要從池子裏拿一個給他就好了,這樣省掉了生成Connection的時間,效率上會有很大提升,不過固然會佔用一些內存~稍微大點網站都會用到數據庫鏈接池的~spa

 

數據庫鏈接池技術的優勢: xml

資源重用對象

更快的系統反應速度blog

新的資源分配手段

統一的鏈接管理,避免數據庫鏈接泄露

 

開源的數據庫鏈接池 C3P0 DBCP Proxool XAPool 等

  以C3p0得到數據源爲例:

 @Test public void testC3P0() throws Exception{
        ComboPooledDataSource cpds = new ComboPooledDataSource();
        cpds.setDriverClass( "com.mysql.jdbc.Driver" ); //loads the jdbc driver            
        cpds.setJdbcUrl( "jdbc:mysql:///atguigu" );
        cpds.setUser("root");                                  
        cpds.setPassword("1230");   
        
        System.out.println(cpds.getConnection()); 
    }
相關文章
相關標籤/搜索