1JDBC直连数据配置项
使用cmd进入对应的druid-1.0.4.jar包所在路径;再根据密码执行上述命令后获取密文
java -cp druid-1.0.4.jar com.alibaba.druid.filter.config.ConfigTools PAAAWORD
2修改spring-db.xml的dataSource为Druid配置
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /><!--数据库驱动类-->
<!-- 测试 185数据库 TEST -->
<!--连接路径-->
<property name="url" value="jdbc:oracle:thin:@(description=(address=(host=192.168.1.110)(protocol=tcp)(port=21521))(FAILOVER=on)(LOAD_BALANCE=yes)(connect_data=(SERVER = DEDICATED)(service_name=test)(failover_mode=(type=select)(method=basic)(RETIRES = 20)(DELAY = 15))))" />
<!-- 配置密码加密和统计相关参数,统计慢sql的单位为毫秒,此处配置为3秒钟,超过3秒钟的sql为慢sql -->
<property name="username" value="" /><!--用户名-->
<property name="password" value="" /><!--密码-->
<property name="filters" value="config,stat" /><!--配置一些过滤器类-->
<property name="connectionProperties" value="config.decrypt=true;druid.stat.slowSqlMillis=3000;druid.stat.logSlowSql=true;druid.stat.mergeSql=true" /><!--配置具体过滤器类中的属性-->
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="20" /><!--初始化最大的连接数量-->
<property name="minIdle" value="20" /><!--最小的空闲数量-->
<property name="maxActive" value="50" /><!--最大的活跃的数量-->
<property name="maxWait" value="60000" /><!--最长的等待时间-->
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,相当于C3P0的idleConnectionTestPeriod 参数,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis" value="300000" />
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis" value="300000" />
<!-- 测试连接,单位为毫秒 -->
<property name="validationQueryTimeout" value="300000" />
<property name="validationQuery" value="SELECT sysdate from dual" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
<!-- 如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。 -->
<property name="poolPreparedStatements" value="true" />
<property name="maxPoolPreparedStatementPerConnectionSize" value="50" />
</bean>
3配置web.xml
<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>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<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,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Tomcat JNDI数据源配置项
在Tomcat使用JNDI配置DruidDataSource,在/conf/context.xml中,在中加入如下配置:
<Resource name="jdbc/druid-test" factory="com.alibaba.druid.pool.DruidDataSourceFactory"<!--数据源管理工厂-->
auth="Container" <!--数据源管理容器-->
type="javax.sql.DataSource" <!--数据源类型-->
maxActive="100" <!--最大活动的连接数-->
maxIdle="30"<!--最大的空闲数-->
maxWait="10000" <!--最长的等待数量-->
url="jdbc:derby:memory:tomcat-jndi;create=true"<!--连接路径-->
filters="stat" <!--配置过滤器-->
/>
和DBCP几乎一样,迁移十分方便
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url}" />
<property name="username"><value>${jdbc_user}</value></property>
<property name="password" value="${jdbc_password}" />
<property name="filters"><value>stat</value></property>
<property name="maxActive"><value>20</value></property>
<property name="initialSize"><value>1</value></property>
<property name="maxWait"><value>60000</value></property>
<property name="minIdle"><value>1</value></property>
<property name="timeBetweenEvictionRunsMillis"><value>60000</value></property>
<property name="minEvictableIdleTimeMillis"><value>300000</value></property>
<property name="validationQuery"><value>SELECT 'x'</value></property>
<property name="testWhileIdle"><value>true</value></property>
<property name="testOnBorrow"><value>false</value></property>
<property name="testOnReturn"><value>false</value></property>
<property name="poolPreparedStatements"><value>true</value></property>
<property name="maxOpenPreparedStatements"><value>20</value></property>
</bean>
为了避免日志文件多大,
造成问题协查不便以及存储资源浪费,强烈建议把慢SQL监控输出关闭。
druid.stat.logSlowSql=false;
对于配置为true时超出设置阈值的SQL会以ERROR信息显示: