1. 程式人生 > >spring配置資料來源的4種方式以及Druid連線池

spring配置資料來源的4種方式以及Druid連線池

第一種:使用spring自帶的DriverManagerDataSource(無連線池的作用)

<bean id="dataSource"  class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
    <property name="driverClassName">   
        <value>oracle.jdbc.driver.OracleDriver</value>   
    </property>   
    <property name="url">   
        <value>jdbc:oracle:thin:@192.168.24.102:1521:sms</value>   
    </property>   
    <property name="username">   
        <value>test</value>   
    </property>   
    <property name="password">   
        <value>test</value>   
    </property>   
    </bean>   

       缺點:並沒有提供池化連線的機制,每次呼叫getConnection()獲取新連線時,只是簡單地建立一個新的連線。因此,這個資料來源類比較適合在單元測試 或簡單的獨立應用中使用,因為它不需要額外的依賴類。 

第二種:DBCP資料來源,需要引入第三方的依賴jar包(使用了連線池技術)

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">       
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />      
    <property name="url" value="jdbc:mysql://localhost:3309/sampledb" />      
    <property name="username" value="root" />      
    <property name="password" value="1234" />      
</bean> 

       注意的地方BasicDataSource提供了close()方法關閉資料來源,所以必須設定destroy-method=”close”屬性, 以便Spring容器關閉時,資料來源能夠正常關閉。

第三種:C3P0資料來源,需要引入第三方的依賴jar包(使用了連線池技術)

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">      
    <property name="driverClass" value=" oracle.jdbc.driver.OracleDriver "/>      
    <property name="jdbcUrl" value=" jdbc:oracle:thin:@localhost:1521:ora9i "/>      
    <property name="user" value="admin"/>      
    <property name="password" value="1234"/>      
</bean> 

         優點:C3P0擁有比DBCP更豐富的配置屬性,通過這些屬性,可以對資料來源進行各種有效的控制。

第四種:JNDI資料來源

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">         
    <property name="jndiName" value="java:comp/env/jdbc/bbt"/>         
</bean>   

        說明:如果應用配置在高效能的應用伺服器(如WebLogic或Websphere等)上,我們可能更希望使用應用伺服器本身提供的資料來源。Spring為此專門提供引用JNDI資源的JndiObjectFactoryBean類。通過jndiName指定引用的JNDI資料來源名稱。 

druid連線池:可以對Spring web工程的JDBC進行監控和統計

Druid介紹:

Druid是一個JDBC元件庫,包括資料庫連線池、SQL Parser等元件。DruidDataSource是最好的資料庫連線池。參考Druid wiki上的文章 <<各連線池的效能比較>>