Druid是什么?
Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。
项目配置
1、添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
2、配置数据源
applicationContext.xml
<bean id="dataSource" class=
"com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="validationQuery" value="select 1"/>
<property name="testWhileIdle" value="true"/>
<property name="testOnBorrow" value="false"/>
<property name="testOnReturn" value="false"/>
<property name="keepAlive" value="true"/>
<property name="phyMaxUseCount" value="100000"/>
<!-- 配置监控统计拦截的filters -->
<property name="filters" value="config,stat,wall"/>
<!--数据库驱动 -->
<property name="driverClassName" value="${jdbc.driver}"/>
<!--连接数据库的url -->
<property name="url" value="${jdbc.url}"/>
<!--连接数据库的用户名 -->
<property name="username" value="${jdbc.username}"/>
<!--连接数据库的密码 -->
<property name="password" value="${jdbc.password}"/>
<property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${jdbc.publicKey}"/>
<!--初始化连接数 -->
<property name="initialSize" value="${jdbc.initialSize}"/>
<!--最大连接数 -->
<property name="maxActive" value="${jdbc.maxActive}"/>
<!--最小空闲连接 -->
<property name="minIdle" value="${jdbc.minIdle}"/>
</bean>
db.properties
jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://localhost:1433;database=ClearGds
jdbc.username=sa
jdbc.password=bGX7eER+IjwQNjxrqsmRXndos+v6zFZ+WCLwrPcTsBppgrZjidA9v8ROsljKVCy2qmWlYQI18JqiCqLuw82tuw==
<!--连接池启动时的初始值-->
jdbc.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ92V6E9LQPNMeu5duQWSGKSgmAieB7B6rjaF6W1IhcEalq57sXee6MdUthxEx24f0sQwdctmXszmbrsdnmlXGcCAwEAAQ==
jdbc.initialSize=3
<!--最大连接数-->
jdbc.maxActive=30
<!--最小空闲值,当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请-->
jdbc.minIdle=1
这里的数据库密码进行了加密处理,通过执行命令获取加密后的密码内容
3、Web.xml
配置_StatViewServlet
Druid内置提供了一个StatViewServlet用于展示Druid的统计信息。
这个StatViewServlet的用途包括:
1、提供监控信息展示的html页面
2、提供监控信息的JSON API
<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>
<init-param>
<!-- 用户名 -->
<param-name>loginUsername</param-name>
<param-value>druid</param-value>
</init-param>
<init-param>
<!-- 密码 -->
<param-name>loginPassword</param-name>
<param-value>druid</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DruidStatView</servlet-name>
<url-pattern>/druid/*</url-pattern>
</servlet-mapping>
配置WebStatFilter
<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>
<init-param>
<param-name>principalSessionName</param-name>
<param-value>user.user</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4、结果展示