druid数据库连接池

来源:互联网 发布:mac配置java环境 编辑:程序博客网 时间:2024/06/04 23:21

一、池的理解

       对象池是一种常见的性能优化方案。如果一个对象被频繁的请求使用,使用对象池能够避免每一次都创建一个实例。在程序初始化或者第一次使用的时候可以将某个类的实例保存在对象池中,需要时再重池中取出使用。对象池可以数组或任何集合类型。对象池应用也非常广泛,在java中,java常量池,还有线程池和数据库连接池,线程池为提供线程,连接池提供数据库连接。线程和数据的连接的建立和销毁都是比较耗时而且频繁的工作,使用对象池方法就可以在需要时直接从池中取出对象,使用完成之后无需关注对象的销毁。在频繁的请求中,对象池方案将对象的创建和销毁的时间改变成对象的管理时间。显然,某些重型对象的创建和销毁时间明显大于对象的管理成本。

二、druid的特点    

      在我们的系统使用druid作为数据库连接池,druid主要有如下一些优势:

        1.druid的诞生时间在dbcp,c3p0(hibernate)之后,吸取优点,弥补了不足。

        2.druid在性能方面也相当优秀。

        3.druid允许查看或者以日志的方式打印出sql语句。对查错和调试非常直观。

        4.druid的核心,“监控而生”,对sql执行监控非常精细。

三、druid的使用

    1. 引入依赖

    <dependency>

<groupId>com.alibaba</groupId>

<artifactId>druid</artifactId>

<version>${druid-version}</version>

     </dependency>

    2. 配置datasource bean,和dbcp方式一样。datasource类com.alibaba.druid.pool.DruidDataSource

       通过配置filters来开启filter功能,多个filter通过逗号隔开,以Filter-Chain的模式进行执行,缺省为StatFilter


    3. 配置web查询入口

        <servlet>

<servlet-name>StatViewServlet</servlet-name>

<servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>

                ***

</servlet>

<servlet-mapping>

<servlet-name>StatViewServlet</servlet-name>

<url-pattern>/druid/*</url-pattern>

</servlet-mapping>

        通过basePath/druid/就可以访问了。

0 0