Druid连接池配置及sql监控使用

        数据库操作是Java后台开发过程中最为重要的一部分,快速、稳定、安全的访问数据库能够大大提升服务器的响应速度。我们刚开始接触Java开发时都学过JDBC操作数据库。对于一个简单的数据库应用,需要访问数据库时,就新创建一个连接,用完后就关闭它,这种情况下占用系统资源不高,不会出现性能瓶颈。但是对于一个复杂的数据库应用,频繁的建立、关闭连接,会消耗大量的系统资源,非常容易使系统的性能陷入瓶颈。

        数据库连接池的使用则能够极大地提升系统的性能,更为合理的操作数据库。它具有几点优势:1)资源重用 2)更快的系统响应速度 3)新的资源分配手段 4)统一的连接管理,避免数据库连接泄露

       常用的数据库连接池有DBCP、C3P0、Proxool、Druid等等。其中Druid连接池阿里巴巴的一个数据库连接池开源框架,它具有丰富的扩展功能,能够稳定的访问数据库;同时还具有强大的数据库监控功能,能够帮助我们优化一些慢sql,可以通过可视化界面观察sql执行情况。下面将介绍介绍一下Durid的配置。

1. 依赖的jar包

<!-- 连接池 -->

<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>druid</artifactId>

    <version>1.0.19</version>

</dependency>

2.spring xml文件配置

<!-- 配置数据源 -->

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">

    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>

    <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:ora11g"/>

    <property name="username" value="admin"/>

    <property name="password" value="manager"/>

    <property name="validationQuery" value="select 1 from dual"/>

    <property name="testWhileIdle" value="true" />
    <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->

    <property name="timeBetweenEvictionRunsMillis" value="60000" />

    <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->

    <property name="minEvictableIdleTimeMillis" value="120000" />

    <!--maxActive: 最大连接数量 -->

    <property name="maxActive" value="20"/>

    <!--initialSize: 初始化连接 -->

    <property name="initialSize" value="1"/>

    <!-- 开启Druid的监控统计功能 -->

    <property name="filters" value="stat" />

</bean>

注释:

(1) validationQuery属性:用来检测连接是否有效的sql。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。这个开启的话会增加数据库的压力,因为每次访问数据库都要测试连接是否可用。(曾遇到现场数据库和web应用不在同一台服务器上,连接不稳定,总是发生数据库连接终端异常....加上这个跟配置好点...最后发现是网关定时切段数据库连接问题..)

3.监控界面 web.xml配置

<servlet>

    <servlet-name>DruidStatView</servlet-name>

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

    <init-param>

        <!-- 用户名 -->

        <param-name>loginUsername</param-name>

        <param-value>admin</param-value>

    </init-param>

    <init-param>

        <!-- 密码 -->

        <param-name>loginPassword</param-name>

        <param-value>manager</param-value>

    </init-param>

</servlet>

<servlet-mapping>

    <servlet-name>DruidStatView</servlet-name>

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

</servlet-mapping>

4.监控界面访问路径

http://[ip]:[port]/项目名/druid/sql.html

 

 

 

 

当在web系统进行数据操作时,就能从上面监控界面中观察到sql执行情况,从而优化sql语句,更好的提升web系统响应速度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值