配置配置DruidDataSource

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" /><!--最长的等待时间-->

        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,相当于C3P0idleConnectionTestPeriod 参数,单位是毫秒 -->

        <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配置为truemysql可以配置为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" <!--配置过滤器-->

/>

DruidDataSource配置项

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信息显示:





猜你喜欢

转载自blog.csdn.net/qq_16485855/article/details/50668413