基于SSM的数据库连接池框架druid的使用

来源:互联网 发布:手机模板软件 编辑:程序博客网 时间:2024/06/05 00:44

http://blog.csdn.net/u014427391/article/details/52554735

druid框架是阿里开源的一款数据库连接池框架,本博客介绍其使用

优点:

  1. 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池
  2. 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
  3. SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
  4. 扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。


可以先去druid的官网下载jar:http://druid.io/downloads.html


建立一个配置文件:

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. url:jdbc:mysql://localhost:3306/db_app?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8   
  2. driverClassName:com.mysql.jdbc.Driver  
  3. username:root  
  4. password:root  
  5.          
  6. filters:stat  
  7.      
  8. maxActive:20  
  9. initialSize:1  
  10. maxWait:60000  
  11. minIdle:10  
  12. maxIdle:15  
  13.      
  14. timeBetweenEvictionRunsMillis:60000  
  15. minEvictableIdleTimeMillis:300000  
  16.      
  17. validationQuery:SELECT 'x'  
  18. testWhileIdle:true  
  19. testOnBorrow:false  
  20. testOnReturn:false  
  21.   
  22. maxOpenPreparedStatements:20  
  23. removeAbandoned:true  
  24. removeAbandonedTimeout:1800  
  25. logAbandoned:true  




创建一个ApplicationContext.xml


[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <!-- 阿里 druid数据库连接池 -->  
  2.     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">    
  3.          <!-- 数据库基本信息配置 -->  
  4.          <property name="url" value="${url}" />    
  5.          <property name="username" value="${username}" />    
  6.          <property name="password" value="${password}" />    
  7.          <property name="driverClassName" value="${driverClassName}" />    
  8.          <property name="filters" value="${filters}" />    
  9.          <!-- 最大并发连接数 -->  
  10.          <property name="maxActive" value="${maxActive}" />  
  11.          <!-- 初始化连接数量 -->  
  12.          <property name="initialSize" value="${initialSize}" />  
  13.          <!-- 配置获取连接等待超时的时间 -->  
  14.          <property name="maxWait" value="${maxWait}" />  
  15.          <!-- 最小空闲连接数 -->  
  16.          <property name="minIdle" value="${minIdle}" />    
  17.          <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
  18.          <property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />  
  19.          <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
  20.          <property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />    
  21.          <property name="validationQuery" value="${validationQuery}" />    
  22.          <property name="testWhileIdle" value="${testWhileIdle}" />    
  23.          <property name="testOnBorrow" value="${testOnBorrow}" />    
  24.          <property name="testOnReturn" value="${testOnReturn}" />    
  25.          <property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />  
  26.          <!-- 打开removeAbandoned功能 -->  
  27.          <property name="removeAbandoned" value="${removeAbandoned}" />  
  28.          <!-- 1800秒,也就是30分钟 -->  
  29.          <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />  
  30.          <!-- 关闭abanded连接时输出错误日志 -->     
  31.          <property name="logAbandoned" value="${logAbandoned}" />  
  32.     </bean>    


0 0