druid数据源
Druid是一个JDBC组件,它包括三部分:
DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。
DruidDataSource 高效可管理的数据库连接池。
SQLParser
Druid可以做什么?
1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。
2) 替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。
3) 数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。
4) SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。
扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。
[摘自OSChina:http://www.oschina.net/p/druid/]
使用druid的方式:
第一步:在spring中配置数据源
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <!-- 基本配置,访问数据库的driver、url、user、password --> <property name="driverClassName" value="${jdbc.druid.driverClassName}" /> <property name="url" value="${jdbc.druid.url}" /> <property name="username" value="${jdbc.druid.username}" /> <property name="password" value="${jdbc.druid.password}" /> <!-- 配置初始化大小、最大、最小 --> <property name="initialSize" value="${jdbc.druid.initialSize}" /> <property name="maxActive" value="${jdbc.druid.maxActive}" /> <property name="minIdle" value="${jdbc.druid.minIdle}" /> <!-- 配置获取连接等待超时的时间,单位是毫秒 --> <property name="maxWait" value="${jdbc.druid.maxWait}" /> <!-- 配置监控统计拦截的filters --> <property name="filters" value="${jdbc.druid.filters}" /> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="${jdbc.druid.timeBetweenEvictionRunsMillis}" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="${jdbc.druid.minEvictableIdleTimeMillis}" /> <!-- 用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。 --> <!-- 查询语句需要根据不同的数据源进行调整设置 --> <property name="validationQuery" value="${jdbc.druid.validationQuery}" /> <!-- 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 --> <property name="testWhileIdle" value="${jdbc.druid.testWhileIdle}" /> <!-- 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 --> <property name="testOnBorrow" value="${jdbc.druid.testOnBorrow}" /> <!-- 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能 --> <property name="testOnReturn" value="${jdbc.druid.testOnReturn}" /> <!-- 对于长时间不使用的连接强制关闭 --> <property name="removeAbandoned" value="${jdbc.druid.removeAbandoned}" /> <!-- 超过30分钟开始关闭空闲连接 --> <property name="removeAbandonedTimeout" value="${jdbc.druid.removeAbandonedTimeout}" /> <!-- 将当前关闭动作记录到日志 --> <property name="logAbandoned" value="${jdbc.druid.logAbandoned}" /> <!-- 设置数据库事务是否自动提交,默认值为true --> <property name="defaultAutoCommit" value="${jdbc.druid.defaultAutoCommit}" /> <!-- 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大。--> <property name="poolPreparedStatements" value="${jdbc.druid.poolPreparedStatements}" /> <!-- 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。 --> <property name="maxOpenPreparedStatements" value="${jdbc.druid.maxOpenPreparedStatements}" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="${jdbc.druid.maxPoolPreparedStatementPerConnectionSize}" /></bean> |
第二步:配置相关参数
配置相关参数
#根据不同的数据库信息需要作出相应的调整,如driverClassName、url、maxActive、minIdle、maxWait、validationQuery等
jdbc.druid.driverClassName = org.hsqldb.jdbcDriver
jdbc.druid.url = jdbc:hsqldb:file:d:/tmp/User1.db;hsqldb.write_delay=true
jdbc.druid.username = sa
jdbc.druid.password =
jdbc.druid.initialSize = 5
jdbc.druid.maxActive = 20
jdbc.druid.minIdle = 10
jdbc.druid.maxWait = 3000
jdbc.druid.filters = stat
jdbc.druid.timeBetweenEvictionRunsMillis = 60000
jdbc.druid.minEvictableIdleTimeMillis = 300000
jdbc.druid.validationQuery = SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS
jdbc.druid.testWhileIdle = true
jdbc.druid.testOnBorrow = true
jdbc.druid.testOnReturn = false
jdbc.druid.removeAbandoned = true
jdbc.druid.removeAbandonedTimeout = 1800
jdbc.druid.logAbandoned = false
jdbc.druid.defaultAutoCommit = false
jdbc.druid.poolPreparedStatements = false
jdbc.druid.maxOpenPreparedStatements = 0
jdbc.druid.maxPoolPreparedStatementPerConnectionSize = 0
第三步:配置监控页面
|
1
2
3
4
5
6
7
8
|
<servlet> <servlet-name>DruidStatView</servlet-name> <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class></servlet><servlet-mapping> <servlet-name>DruidStatView</servlet-name> <url-pattern>/druid/*</url-pattern></servlet-mapping> |
通过以上配置,在应用启动后访问http://localhost:8080/prjname/druid/

druid数据源的更多相关文章
- druid 数据源 使用属性文件的一个坑
直接上代码: <bean id="propertiesFactoryBean" class="org.springframework.beans.factory.c ...
- Springboot 系列(九)使用 Spring JDBC 和 Druid 数据源监控
前言 作为一名 Java 开发者,相信对 JDBC(Java Data Base Connectivity)是不会陌生的,JDBC作为 Java 基础内容,它提供了一种基准,据此可以构建更高级的工具和 ...
- springboot配置Druid数据源
springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...
- SpringBoot整合阿里Druid数据源及Spring-Data-Jpa
SpringBoot整合阿里Druid数据源及Spring-Data-Jpa https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=224 ...
- SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)
1.概念:SpringBoot 整合 MyBatis 2.背景 SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少数据层操作,所有的开发 ...
- 【2.0】SpringBoot2配置Druid数据源及监控
什么是Druid? Druid首先是Java语言中最好的数据库连接池,也是阿里巴巴的开源项目.Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池, ...
- 整合Druid数据源
pom依赖: <!--引入druid数据源--> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> & ...
- Druid数据源对数据库访问密码加密好麻烦
开发中,druid数据源对数据库密码进行了加密,每次切换数据库或者修改密码后,感觉很麻烦. 解决办法: 1.用工具类中的Java代码进行加解密. 需要用到com.alibaba.druid.filte ...
- 21. Spring Boot Druid 数据源配置解析
1.数据源配置属性类源码 package org.springframework.boot.autoconfigure.jdbc; @ConfigurationProperties( prefix = ...
- springboot 配置DRUID数据源
druid 是阿里开源的数据库连接池. 开发时整合 druid 数据源过程. 1.修改pom.xml <dependency> <groupId>mysql</gro ...
随机推荐
- Nginx - upstream 模块及参数测试
目录 - 1. 前言- 2. 配置示例及指令说明 - 2.1 配置示例 - 2.2 指令 - 2.3 upstream相关变量- 3. 参数配置及测试 - 3.1 max_fa ...
- jre安装配置!
通常安装java开发环境都是jdk ,jre 一起安装,配置变量!分享一下只安装jre的配置! 去官网下载jre, 按提示安装成功! 和jdk配置一样 ,首先配置一下:JRE_HOME=C:\Prog ...
- MST最小生成树
首先,贴上一个很好的讲解贴: http://www.wutianqi.com/?p=3012 HDOJ 1233 还是畅通工程 http://acm.hdu.edu.cn/showproblem.ph ...
- JDBC连接池和DBUtils
本节内容: JDBC连接池 DBUtils 一.JDBC连接池 实际开发中“获得连接”或“释放资源”是非常消耗系统资源的两个过程,为了解决此类性能问题,通常情况我们采取连接池技术,来共享连接Conne ...
- Zabbix的通知功能以及自定义脚本告警
本节内容: Zabbix的通知功能 定义接收告警的用户 定义Action Zabbix自定义脚本发送报警邮件 一.Zabbix的通知功能 在配置好监控项和触发器之后,一旦正常工作中的某触发器状态发生改 ...
- 一步一步学习IdentityServer4 (4) 处理特殊需求之-登录等待页面
用IdentityServer3的时候登录如果采用Post方式大家会发现有中间有一个等待Submit空白页面,界面不友好,现在我想把这个修改自定义的页面Loading 在Identityserver3 ...
- Django和Mysql合用时,显示时间问题
这个以前没系统处理过,感觉前端页面显示正常,就OK. 但有的不重要的地方,显示有8小时错乱,也没有列入优先级处理. 昨天下细看了一些网上文档,找取了解决思路. 大致想法是:数据库里存+00:00时区的 ...
- android发布版本的几个命令
./build_native.sh /opt/software/apache-ant-1.8.2/bin/ant clean #/opt/software/apache-ant-1.8.2/bin/a ...
- Java 之 JDBC
mysql : //****** 四大金刚: 驱动类名.url.用户名.密码 //MySQL四大金刚 String driverClassname="com.mysql.jdbc.Drive ...
- Warning -27077: The "vuser_init" section contains web function(s) when the "Simulate a new user on each iteration" Run-Time Setting is ON.
通过LR来录制登录过程并生成脚本,设置了自动关联,并回放录制脚本,观察回放日志发现没有报error信息,说明脚本没有问题,将脚本放入Controller中设置100个用户设置运行,发现运行一段时间开始 ...