http://blog.csdn.net/u014427391/article/details/52554735
druid框架是阿里开源的一款数据库连接池框架,本博客介绍其使用
优点:
- 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
- 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
- SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
- 扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件。
可以先去druid的官网下载jar:http://druid.io/downloads.html
建立一个配置文件:
- url:jdbc:mysql://localhost:3306/db_app?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
- driverClassName:com.mysql.jdbc.Driver
- username:root
- password:root
-
- filters:stat
-
- maxActive:20
- initialSize:1
- maxWait:60000
- minIdle:10
- maxIdle:15
-
- timeBetweenEvictionRunsMillis:60000
- minEvictableIdleTimeMillis:300000
-
- validationQuery:SELECT 'x'
- testWhileIdle:true
- testOnBorrow:false
- testOnReturn:false
-
- maxOpenPreparedStatements:20
- removeAbandoned:true
- removeAbandonedTimeout:1800
- logAbandoned:true
创建一个ApplicationContext.xml
-
- <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
-
- <property name="url" value="${url}" />
- <property name="username" value="${username}" />
- <property name="password" value="${password}" />
- <property name="driverClassName" value="${driverClassName}" />
- <property name="filters" value="${filters}" />
-
- <property name="maxActive" value="${maxActive}" />
-
- <property name="initialSize" value="${initialSize}" />
-
- <property name="maxWait" value="${maxWait}" />
-
- <property name="minIdle" value="${minIdle}" />
-
- <property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
-
- <property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
- <property name="validationQuery" value="${validationQuery}" />
- <property name="testWhileIdle" value="${testWhileIdle}" />
- <property name="testOnBorrow" value="${testOnBorrow}" />
- <property name="testOnReturn" value="${testOnReturn}" />
- <property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
-
- <property name="removeAbandoned" value="${removeAbandoned}" />
-
- <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
-
- <property name="logAbandoned" value="${logAbandoned}" />
- </bean>