搭建SSM框架用什麼鏈接池,建議用Druid

c3p0,dbcp與druid 三大連接池的區別

數據庫連接池有很多選擇,c3p、dhcp、proxool等,druid作爲一名後起之秀
可以看https://blog.csdn.net/qq_34359363/article/details/72763491

druid鏈接池

阿里出品,淘寶和支付寶專用數據庫連接池,但它不僅僅是一個數據庫連接池,它還包含一個ProxyDriver,一系列內置的JDBC組件庫,一個 SQL Parser。支持所有JDBC兼容的數據庫,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。Druid針對Oracle和MySql做了特別優化,比如Oracle的PS
Cache內存佔用優化,MySql的ping檢測優化。Druid提供了MySql、Oracle、Postgresql、SQL-92的SQL的完整支持,這是一個手寫的高性能SQL Parser,支持Visitor模式,使得分析SQL的抽象語法樹很方便。簡單SQL語句用時10微秒以內,複雜SQL用時30微秒。通過Druid提供的SQL Parser可以在JDBC層攔截SQL做相應處理,比如說分庫分表、審計等。Druid防禦SQL注入攻擊的WallFilter就是通過Druid的SQL Parser分析語義實現的。

druid的實現方式

pom.xml文件

  <!-- 阿里數據庫連接池 下載地址http://www.mvnrepository.com/artifact/com.alibaba/druid-->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
  </dependency>

applicationContext.xml

     <!-- 指定數據源 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
        <!-- 連接驅動 -->
        <property name="driverClassName" value="${dataSource.driverClass}"/>
        <property name="url" value="${dataSource.jdbcUrl}"/>
        <property name="username" value="${dataSource.user}"/>
        <property name="password" value="${dataSource.password}"/>
        <property name="filters" value="stat" />
        <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize" value="${cpool.initialSize}" />
        <property name="maxActive" value="${cpool.maxActive}" />
        <property name="minIdle" value="${cpool.minIdle}" />
        <!-- 配置獲取連接等待超時的時間 -->
        <property name="maxWait" value="${cpool.maxWait}" />
        <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連接,單位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="${cpool.timeBetweenEvictionRunsMillis}" />
        <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="${cpool.minEvictableIdleTimeMillis}" />
        <property name="validationQuery" value="SELECT 'x'" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />
        <!-- 打開PSCache,並且指定每個連接上PSCache的大小 -->
        <property name="poolPreparedStatements" value="true" />
        <property name="maxPoolPreparedStatementPerConnectionSize" value="${cpool.maxPoolPreparedStatementPerConnectionSize}" />
    </bean>

jdbc.properties

dataSource.driverClass=com.mysql.jdbc.Driver
dataSource.jdbcUrl=jdbc:mysql://localhost:3306/recycling_treasure?characterEncoding\=UTF-8&amp;zeroDateTimeBehavior\=convertToNull
dataSource.user=root
dataSource.password=root
###----------------- druid 鏈接池 -------------
cpool.initialSize=3
#配置初始化大小、最小、最大
cpool.minIdle=3
cpool.maxActive=20
#配置獲取連接等待超時的時間
cpool.maxWait = 60000
#配置間隔多久才進行一次檢測,檢測需要關閉的空閒連接,單位是毫秒
cpool.timeBetweenEvictionRunsMillis =60000
#配置一個連接在池中最小生存的時間,單位是毫秒
cpool.minEvictableIdleTimeMillis = 300000
cpool.maxPoolPreparedStatementPerConnectionSize = 50
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章