您的位置:首页 > 产品设计 > UI/UE

配置配置DruidDataSource

2016-02-15 15:32 846 查看
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" <!--配置过滤器-->

/>

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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: