300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 数据库连接池 ( 四 ) Druid 连接池

数据库连接池 ( 四 ) Druid 连接池

时间:2018-09-03 17:10:50

相关推荐

数据库连接池 ( 四 ) Druid 连接池

3.2.Druid 连接池

Druid:Druid不仅是一个数据库连接池,还包含一个ProxyDriver、一系列内置的JDBC组件库、一个SQL Parser。

支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等。

Druid针对Oracle和MySql做了特别优化,比如:

Oracle的PS Cache内存占用优化MySql的ping检测优化

Druid提供了MySql、Oracle、Postgresql、SQL-92的SQL的完整支持,这是一个手写的高性能SQL Parser,支持Visitor模式,使得分析SQL的抽象语法树很方便。

简单SQL语句用时10微秒以内,复杂SQL用时30微秒。

通过Druid提供的SQL Parser可以在JDBC层拦截SQL做相应处理,比如说分库分表、审计等。Druid防御SQL注入攻击的WallFilter,就是通过Druid的SQL Parser分析语义实现的。

重点资料:

中文 /alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98

英文 /alibaba/druid/wiki/FAQ

Druid Spring Boot Starter /alibaba/druid/tree/master/druid-spring-boot-starter

3.2.1.与 springboot整合依赖

<!-- druid --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.21</version></dependency>

3.2.2.与springboot整合配置

3.2.2.1.Druid 配置参数

3.2.2.2.properties格式

spring.datasource.druid.db-type=mysqlspring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/数据库名?serverTimezone=UTCspring.datasource.druid.username=rootspring.datasource.druid.password=root# 初始化时建立物理连接的个数spring.datasource.druid.initial-size=5# 连接池的最小空闲数量spring.datasource.druid.min-idle=5# 连接池最大连接数量spring.datasource.druid.max-active=200# 获取连接时最大等待时间,单位毫秒spring.datasource.druid.max-wait=60000# 既作为检测的间隔时间又作为testWhileIdel执行的依据spring.datasource.druid.time-between-eviction-runs-millis=60000# 销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接(配置连接在池中的最小生存时间)spring.datasource.druid.min-evictable-idle-time-millis=300000# 用来检测数据库连接是否有效的sql 必须是一个查询语句(oracle中为 select 1 from dual)spring.datasource.druid.validation-query=select 'x'# 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。spring.datasource.druid.test-while-idle=true# 申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为truespring.datasource.druid.test-on-borrow=false# 归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为truespring.datasource.druid.test-on-return=false# 是否缓存preparedStatement, 也就是PSCache,PSCache对支持游标的数据库性能提升巨大,比如说oracle,在mysql下建议关闭。spring.datasource.druid.pool-prepared-statements=true# 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20spring.datasource.druid.filters=stat,wall#spring.datasource.druid.filter.stat.db-type=mysqlspring.datasource.druid.filter.stat.log-slow-sql=truespring.datasource.druid.filter.stat.slow-sql-millis=2000spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000spring.datasource.druid.use-global-data-source-stat=true#druid web监控spring.datasource.druid.web-stat-filter.enabled=truespring.datasource.druid.web-stat-filter.url-pattern=/*spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*#druid web监控 白名单和黑名单spring.datasource.druid.stat-view-servlet.enabled=truespring.datasource.druid.stat-view-servlet.url-pattern=/druid/*spring.datasource.druid.stat-view-servlet.reset-enable=falsespring.datasource.druid.stat-view-servlet.login-username=adminspring.datasource.druid.stat-view-servlet.login-password=12345678spring.datasource.druid.stat-view-servlet.allow=127.0.0.1,192.168.67.42,192.168.0.15spring.datasource.druid.stat-view-servlet.deny=192.168.0.1

3.2.2.3.yml格式

spring:datasource:username: rootpassword: root# ?serverTimezone=UTC解决时区的报错url: jdbc:mysql://127.0.0.1:3306/数据库名?serverTimezone=UTCdriver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource# 使用druid数据源druid:# 初始化时建立物理连接的个数initial-size: 5# 连接池的最小空闲数量min-idle: 5# 连接池最大连接数量max-active: 20# 获取连接时最大等待时间,单位毫秒max-wait: 60000# 既作为检测的间隔时间又作为testWhileIdel执行的依据time-between-eviction-runs-millis: 60000# 销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接(配置连接在池中的最小生存时间)min-evictable-idle-time-millis: 30000# 用来检测数据库连接是否有效的sql 必须是一个查询语句(oracle中为 select 1 from dual)validation-query: select 'x'# 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。test-while-idle: true# 申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为truetest-on-borrow: false# 归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为truetest-on-return: false# 是否缓存preparedStatement, 也就是PSCache,PSCache对支持游标的数据库性能提升巨大,比如说oracle,在mysql下建议关闭。pool-prepared-statements: false# 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动max-pool-prepared-statement-per-connection-size: 20

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。