摘要:申请连接时执行检测连接是否有效归还连接时执行检测连接是否有效建议配置为,不影响性能,并且保证安全性申请连接的时候检测,如果空闲时间大于,执行检测连接是否有效。
Druid入门 Maven仓库地址
手动获取连接com.alibaba druid 1.1.6
public class Driud { private static DruidDataSource druidDataSource = null; //在类加载时进行初始化 static { Properties properties = new Properties(); try { properties.load(Driud.class.getResourceAsStream("/druid.properties")); druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return druidDataSource.getConnection(); } }配置信息 总体配置
name=test driverClassName = com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password=overdose initialSize=5 maxActive=10 minIdle=3 maxWait=60000 removeAbandoned=true removeAbandonedTimeout=180 timeBetweenEvictionRunsMillis=60000 minEvictableIdleTimeMillis=300000 validationQuery=SELECT 1 testWhileIdle=true testOnBorrow=false testOnReturn=false poolPreparedStatements=true maxPoolPreparedStatementPerConnectionSize=50 filters=stat单个配置
配置 | 缺省值 | 解释 |
---|---|---|
name | 当存在多个数据源时, 通过名字区分 | |
url | 连接数据库的Url mysql: jdbc:mysql://localhost:3306/test oracle : jdbc:oracle:thin:@localhost:1521:ocnauto |
|
username | 连接数据库的用户名 | |
password | 连接数据库的密码 | |
driverClassName | 根据url自动识别 | 可选的配置 druid会自动根据url选择对应的驱动 |
initialSize | 0 | 初始化时创建连接的个数 |
maxActive | 8 | 最大连接池数量 |
没用 详见Druid常见问题 | ||
minIdle | 最小连接池数量 | |
maxWait | 获取连接时最大等待时间, 单位为毫秒, 缺省为公平锁 公平锁的简单介绍 | |
poolPreparedStatements | 是否缓存preparedStatement, 也就是PSCache | |
maxPoolPreparedStatementPerConnectionSize | -1 | 每个连接上PSCache的大小 |
validationQuery | 用来检测连接是否有效的sql,要求是一个查询语句。 | |
testOnBorrow | true | 申请连接时执行validationQuery检测连接是否有效 |
testOnReturn | false | 归还连接时执行validationQuery检测连接是否有效 |
testWhileIdle | false | 建议配置为true,不影响性能,并且保证安全性 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 |
timeBetweenEvictionRunsMillis | 间隔多久进行一次检测, 检测需要关闭的空闲连接, 单位为毫秒 | |
minEvictableIdleTimeMillis | 一个连接在池中最小生存的时间,单位是毫秒 | |
connectionInitSqls | 连接初始化的时候执行的sql | |
exceptionSorter | 根据dbType自动识别 | 数据库抛出一些不可恢复的异常时,抛弃连接 |
filters | 通过别名的方式配置扩展插件 |
连接池初始化时创建initialSize个连接, 取出连接时, 先判断有无空闲连接, 如果有空闲连接则返回, 否则再判断当前连接池是否等于maxActive, 如果等于maxActive, 则最多等待maxWait时间, 如果中途有连接被释放则返回, 否则抛出异常. 如果不等于maxActive则建立一个新连接. 连接使用完毕后, 并不将其关闭, 而是放回连接池, 等待下一次获取, 当连接池连接数目小于minIdle, 则自动补充连接
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/70940.html
摘要:看过的一些书上也是多数介绍了这两种数据库连接池,自己做的也是使用。参考资料文档首页文档问题阿里学习,号称最好的数据库连接池常用数据库连接池配置说明学习整合,使用连接池使用和监控配置数据源配置如果文章有错的地方欢迎指正,大家互相交流。 前言 本章节主要讲解Druid数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并...
摘要:二环境准备编译器选择这里我们使用进行工作流开发,虽然对于工作流的友好度不是很好,因为会有一些小的,但是,对于的开发还是非常的好的。新建后出现下面的编辑页面到现在,编辑插件就准备好了。 文章源码托管:https://github.com/OUYANGSIHA...欢迎 star !!! 一、前言 在上一节中我们对activiti进行了基本的介绍activiti进行了基本的介绍,同时介绍了...
摘要:前言由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 前言 由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 由于更新比较频繁,因此隔一段时间才会更新目录导航哦~想要获取最新原创的技术文章欢迎关注我的公众号:Java3y Java3y文章目录导航 Java基础 泛型就这么简单 注解就这么简单 Druid数据库连接池...
摘要:多数据源,一般用于对接多个业务上独立的数据库可能异构数据库。这也就导致异构数据库的检查也是类似问题。内容略数据源多数据源,涉及到异构数据库,必须明确指定,否则的转换出错取值内容可参考初始连接数最大连接池数量。 开篇之前,说一句题外话。多数据源和动态数据源的区别。 多数据源,一般用于对接多个业务上独立的数据库(可能异构数据库)。 动态数据源,一般用于大型应用对数据切分。 配置参考 如...
阅读 2906·2023-04-26 01:01
阅读 3682·2021-11-23 09:51
阅读 2514·2021-11-22 14:44
阅读 3542·2021-09-23 11:57
阅读 2826·2021-09-22 14:58
阅读 5866·2021-09-10 11:25
阅读 2100·2019-08-30 13:11
阅读 1589·2019-08-30 12:59