1. 程式人生 > >使用druid資料庫連線池

使用druid資料庫連線池

Druid是目前比較流行的資料庫連線池,不管是效能還是各項功能都超越其他連線池,有文章介紹各個連線池效能對比如下:hikariCP>druid>tomcat-jdbc>dbcp>c3p0。

Druid不僅具有良好的效能,而且還有sql攔截等功能,並提供介面與介面進行sql分析與統計。

使用

1.引入依賴

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version
>
${druid-version}</version> </dependency>

2.獲取原始碼

3.配置連線池資訊

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${dba.jdbc.driver}" />
        <property name="url" value="${dba.jdbc.url}" />
        <property
name="username" value="${dba.jdbc.username}" />
<property name="password" value="${dba.las-im-factory.jdbc.password}" /> <property name="maxActive" value="10" /><!--最大連線數--> <property name="minIdle" value="2" /><!--最小連線數--> <property name
="maxWait" value="15000" />
<!--最大等待時長--> <property name="timeBetweenEvictionRunsMillis" value="60000" /><!--60秒執行一次空閒連接回收器--> <property name="minEvictableIdleTimeMillis" value="180000" /><!--連線空閒30分鐘被回收--> <property name="removeAbandoned" value="true" /><!--啟動連線洩露關閉功能--> <property name="removeAbandonedTimeout" value="600" /><!--連線超過10分鐘未關閉,強行回收連線--> <property name="logAbandoned" value="true" /><!-- 關閉abanded連線時輸出錯誤日誌 --> <property name="filters" value="stat" /><!-- 新增sql監控過濾器 --> </bean>

需要注意的是,maxIdle在druid是宣告廢棄的屬性,連線池中的連結不再依賴maxIdle,而是maxActive。官方給出說明是:

maxIdle是Druid為了方便DBCP使用者遷移而增加的,maxIdle是一個混亂的概念。連線池只應該有maxPoolSize和minPoolSize,druid只保留了maxActive和minIdle,分別相當於maxPoolSize和minPoolSize。

監控

Druid內建提供一個StatFilter,用於統計監控資訊。別名是stat。

1.配置訪問servlet

<servlet>  
    <servlet-name>DruidStatView</servlet-name>  
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>  
    <init-param>  
    <!-- 允許清空統計資料 -->  
    <param-name>resetEnable</param-name>  
    <param-value>true</param-value>  
    </init-param>  
    <init-param>  
    <!-- 使用者名稱 -->  
    <param-name>loginUsername</param-name>  
    <param-value>druid</param-value>  
    </init-param>  
    <init-param>  
    <!-- 密碼 -->  
    <param-name>loginPassword</param-name>  
    <param-value>druid</param-value>  
    </init-param>  
</servlet>  
<servlet-mapping>  
    <servlet-name>DruidStatView</servlet-name>  
    <url-pattern>/druid/*</url-pattern>  
</servlet-mapping>