1、Druid连接池properties配置文件
jdbc.driverClassName=com.mysql.jdbc.Driver
#部署到服务器后添加?characterEncoding=utf-8可以杜绝中文乱码
jdbc.url=jdbc:mysql://localhost:3306/SpringMVC?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
#初始化连接数
jdbc.initialSize=10
#最大连接数
jdbc.maxActive=10
#获取连接最大等待时间
jdbc.maxWait=3000
#打开PSCache,并且指定每个连接上PSCache的大小
jdbc.maxOpenPreparedStatements=20
#连接池最小空闲
jdbc.minIdle=0
#用来检测连接是否有效的sql
jdbc.validationQuery=SELECT 1
#申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
jdbc.testOnBorrow=false
#归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
jdbc.testOnReturn=false
#建议配置为true,不影响性能,并且保证安全性
jdbc.testWhileIdle=true
#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
jdbc.timeBetweenEvictionRunsMillis=6000
#配置一个连接在池中最小生存的时间,单位是毫秒
jdbc.minEvictableIdleTimeMillis=25200000
#打开removeAbandoned功能
jdbc.removeAbandoned=true
#活动连接的最大空闲时间,单位为秒 超过此时间的连接会被释放到连接池中
jdbc.removeAbandonedTimeout=1800
#连接时输出错误日志
jdbc.logAbandoned=true
#属性类型是字符串,通过别名的方式配置扩展插件
jdbc.filters=stat
#是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。
poolPreparedStatements=true
2、Spring中对druid的配置
<!-- 阿里 druid 数据库连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<!--基本属性 url、user、password-->
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<!--最大并发连接数-->
<property name="maxActive" value="${jdbc.maxActive}"/>
<!--初始化连接数量-->
<property name="initialSize" value="${jdbc.initialSize}"/>
<!--配置获取连接等待超时的时间-->
<property name="maxWait" value="${jdbc.maxWait}"/>
<!--配置监控统计拦截的filters,去掉后监控界面sql无法统计-->
<property name="filters" value="${jdbc.filters}"/>
<!--最小空闲连接数-->
<property name="minIdle" value="${jdbc.minIdle}"/>
<!--配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒-->
<property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}"/>
<!--配置一个连接在池中最小生存的时间,单位是毫秒-->
<property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}"/>
<property name="validationQuery" value="${jdbc.validationQuery}"/>
<property name="testWhileIdle" value="${jdbc.testWhileIdle}"/>
<property name="testOnBorrow" value="${jdbc.testOnBorrow}"/>
<property name="testOnReturn" value="${jdbc.testOnReturn}"/>
<property name="maxOpenPreparedStatements" value="${jdbc.maxOpenPreparedStatements}"/>
<!--打开 removeAbandoned 功能-->
<property name="removeAbandoned" value="${jdbc.removeAbandoned}"/>
<!--活动连接的最大空闲时间,单位为秒 超过此时间的连接会被释放到连接池中-->
<property name="removeAbandonedTimeout" value="${jdbc.removeAbandonedTimeout}"/>
<!--关闭 abanded 连接时输出错误日志-->
<property name="logAbandoned" value="${jdbc.logAbandoned}"/>
</bean>
3、在web.xml中开启druid监控配置
<!-- 连接池 启用 Web 监控统计功能 start-->
<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>
<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>druid</param-value>
</init-param>
<init-param>
<!-- 密码 -->
<param-name>loginPassword</param-name>
<param-value>362623</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
<!-- 连接池 启用 Web 监控统计功能 end-->