数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。
摘自百度百科
为监控而生的数据库连接池
这是它在 GitHub 上的描述,它有四千多的 Star , 这些并不重要,其实他的监控功能做的很不错,对开发完成后我们代码优化提供了大量的参考,至少在数据库连接层面的提升是明显可见的。我们曾经把一个耗时半分钟的查询优化到毫秒级别,当然这并不是全靠优化数据库查询,但它对调优有重要帮助。
网上有很多各个比较常用的连接池的对比,如 c3p0 ,Proxool ,Druid ,Tomcat Jdbc Pool 等等这些,你可以搜到详细的对比,我这里不再讨论,我提供一个 连接池c3p0 ,Proxool ,Druid ,Tomcat Jdbc Pool对比测试,可以参考。下面是官方的功能对比:
这些内容你都可以在 GitHub(https://github.com/alibaba/druid/)上找到。
配置起来也很简单
一、下载druid-1.0.9.jar
导入到项目
这一步你就去下载就行了,地址:http://central.maven.org/maven2/com/alibaba/druid/1.0.9/druid-1.0.9.jar
二、applicationContext.xml
文件配置数据库连接
这好像和其他数据库连接池没多少区别,除了几个参数不同而已,我贴出我的配置
<!--master 配置数据源 -->
<bean id="masterDataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://127.0.0.1:3306/springdemo?useUnicode=true&characterEncoding=UTF-8</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>123456</value>
</property>
<!-- 通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat 日志用的filter:log4j 防御sql注入的filter:wall -->
<property name="filters" value="stat,log4j" />
<!-- 最大并发连接数 -->
<property name="maxActive" value="30" />
<!-- 初始化连接数量 -->
<property name="initialSize" value="5" />
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait" value="60000" />
<!-- 最小空闲连接数 -->
<property name="minIdle" value="5" />
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="validationQuery" value="SELECT 'x'" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="poolPreparedStatements" value="false" />
<property name="maxOpenPreparedStatements" value="100" />
<!-- 打开removeAbandoned功能(连接泄漏监测,怀疑存在泄漏之后再打开) -->
<property name="removeAbandoned" value="true" />
<!-- 1800秒,也就是30分钟 -->
<property name="removeAbandonedTimeout" value="1800" />
<!-- 关闭abanded连接时输出错误日志 -->
<property name="logAbandoned" value="true" />
</bean>
上面的参数都可以根据自己的需要来调整。具体配置请访问我的 GitHub 示例https://github.com/mafly/SpringDemo/blob/master/WebContent/WEB-INF/applicationContext.xml
三、web.xml
文件配置监控平台
<!-- 连接池 启用Web监控统计功能 start-->
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>*.js,*mp3,*.swf,*.xls,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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>admin</param-value>
</init-param>
<init-param>
<!-- 密码 -->
<param-name>loginPassword</param-name>
<param-value>123456</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<!-- 连接池 启用Web监控统计功能 end-->
在文件中加入上面配置,就可以在项目地址后加druid
后访问监控平台,看一下数据库连接及 SQL 语句执行时间,当然登录密码什么的自己配置啦。登录后界面:
总结一下
我这里当然就是抛砖引玉的简单说了一下 Druid 数据库连接池的基本配置,更多强大功能等待大家去体验,在我们时间项目中,使用起来会比原来 c3p0 要爽,这里要感谢项目组中小慷同学的技术分享, Druid 的具体情况及各种配置大家都可以去 https://github.com/alibaba/druid/ 查看,文档还是比较详细的。
相关推荐
数据库连接池 druid-1.0.9数据库连接池技术,由阿里巴巴提供。使用步骤: 1.导入jar包:druid-1.0.9.jar 2.定义配置文件:druid.properties,可取任意名称,放任意路径
最新版阿里数据库连接池Druid-1.1.2.jar
**阿里巴巴数据库连接池Druid详解** Druid是阿里巴巴开源的一款高效、强大且可扩展的数据库连接池组件。作为Java世界中的优秀数据源管理工具,它不仅提供了基础的数据库连接池功能,还内置了丰富的监控和扩展特性,...
本主题将深入探讨数据库连接池Druid以及它的1.1.21版本,同时也会涉及如何配置其核心组件——`druid.properties`文件。 Druid是一个流行的Java数据库连接池实现,由阿里巴巴开发并开源。它不仅提供了数据库连接池的...
MySQL驱动数据库连接池Druid是Java开发中常用的数据源管理工具,它由阿里巴巴开源并维护。在Java应用程序中,特别是Web应用服务器上,数据库连接池是必不可少的组件,用于优化数据库资源的使用,提高系统性能。本文...
Druid是阿里巴巴开源的一款优秀的数据库连接池实现,它不仅提供了基本的连接池功能,还集成了监控、日志、SQL解析等高级特性。本篇文章将深入探讨Druid的核心特性和使用方法。 1. **简介** Druid是阿里巴巴在2010...
最新版阿里数据库连接池Druid-1.1.1.jar
Druid是阿里巴巴开源的一个高效、强大的数据库连接池组件,它的全称是Dynamic Routing Data Source,即动态路由数据源。在Java Web开发中,数据库连接池扮演着至关重要的角色,它负责管理数据库连接,提高数据库操作...
数据库连接池jar包,包含c3p0、druidjar包和依赖jar包,c3p0通过配置文件xml或者properties读取连接对象 druid通过properties读取连接,使用springJDBC JdbcTempalte简化sql操作
Druid数据库连接池是阿里巴巴开源的一款高效、强大的数据库连接池组件,它在2018年发布了1.1.9版本。这个版本包含了对性能优化、稳定性提升以及一些新特性的支持,尤其对于处理大量并发数据库操作的应用场景,Druid...
"JDBC&Druid数据库连接池" JDBC(Java Database Connectivity)是一种Java API,用于连接和操作数据库。Druid是一个Java语言的数据库连接池,旨在提供高效、稳定、可靠的数据库连接服务。 JDBC基本概念 JDBC是一...
Druid是阿里巴巴开源的一个高性能、多功能的数据库连接池组件,它在Java开发中广泛应用于各种项目的数据库管理。在1.2.8版本中,Druid提供了一系列优化和改进,旨在提高数据库访问性能,增强监控能力,并简化数据库...
druid下载 数据库连接池 内置三个jar包和一个配置文件 druid.properties druid-1.0.9.jar druid-1.0.9-javadoc.jar druid-1.0.9-sources.jar
"Druid数据库连接池使用" Druid是一个功能强大且高效的数据库连接池,具有许多优点,以下是Druid的组成部分和可以实现的功能: Druid的组成部分 Druid是一个JDBC组件,由三个部分组成: 1. DruidDriver:代理...
总之,阿里数据库连接池Druid是Java开发中的重要工具,它提供的不仅仅是简单的数据库连接管理,还包括了丰富的监控、安全防护和性能优化功能。结合源码学习和配置文件的使用,开发者可以更好地掌握Druid的精髓,提升...
druid-1.0.9数据库连接池技术,由阿里巴巴提供。使用步骤: 1.导入jar包:druid-1.0.9.jar 2.定义配置文件:druid.properties,可取任意名称,放任意路径 3.获取数据库连接池对象:DruidDataSourceFactory 4....
本资源"03-数据库连接池驱动"包含了三种常用的数据库连接池驱动:C3P0、Druid和DBCP,它们都是为了优化数据库连接管理和复用而设计的。 首先,C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3...
达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,达梦7数据库连接池,jdbcDriver,
SpringBoot 整合 Mybatis 使用 Druid 数据库连接池 Spring Boot 是一个基于 Java 的框架,提供了快速开发和生产级别的应用程序的能力。Mybatis 是一个基于 Java 的持久层框架,提供了对数据库的访问和操作的能力。...
在本文中,我们将深入探讨Druid,一个广泛使用的数据库连接池实现,以及其相关的配置和运行原理。 Druid,全称为Data Source Druid,是由阿里巴巴开源的高性能、多功能的Java数据库连接池。在选择数据库连接池时,...