使用druid数据库连接池

本文介绍了Druid数据库连接池的特点及使用方法,包括其在性能上的优势、sql拦截功能及如何通过配置实现监控。提供了引入依赖、配置参数等具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.获取源码

github地址: https://github.com/alibaba/druid

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值