资讯专栏INFORMATION COLUMN

Druid入门

lsxiao / 420人阅读

摘要:申请连接时执行检测连接是否有效归还连接时执行检测连接是否有效建议配置为,不影响性能,并且保证安全性申请连接的时候检测,如果空闲时间大于,执行检测连接是否有效。

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 最大连接池数量
maxIdle 没用 详见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数据库连接池,为什么要学Druid数据库连接池呢?? 我的知识储备数据库连接池有两种->C3P0,DBCP,可是现在看起来并...

    waltr 评论0 收藏0
  • Activiti工作流从入门到入土:入门实例

    摘要:二环境准备编译器选择这里我们使用进行工作流开发,虽然对于工作流的友好度不是很好,因为会有一些小的,但是,对于的开发还是非常的好的。新建后出现下面的编辑页面到现在,编辑插件就准备好了。 文章源码托管:https://github.com/OUYANGSIHA...欢迎 star !!! 一、前言 在上一节中我们对activiti进行了基本的介绍activiti进行了基本的介绍,同时介绍了...

    SwordFly 评论0 收藏0
  • Java3y文章目录导航

    摘要:前言由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 前言 由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 由于更新比较频繁,因此隔一段时间才会更新目录导航哦~想要获取最新原创的技术文章欢迎关注我的公众号:Java3y Java3y文章目录导航 Java基础 泛型就这么简单 注解就这么简单 Druid数据库连接池...

    KevinYan 评论0 收藏0
  • SpringBoot+Mybatis配置Druid多数据源

    摘要:多数据源,一般用于对接多个业务上独立的数据库可能异构数据库。这也就导致异构数据库的检查也是类似问题。内容略数据源多数据源,涉及到异构数据库,必须明确指定,否则的转换出错取值内容可参考初始连接数最大连接池数量。 开篇之前,说一句题外话。多数据源和动态数据源的区别。 多数据源,一般用于对接多个业务上独立的数据库(可能异构数据库)。 动态数据源,一般用于大型应用对数据切分。 配置参考 如...

    Songlcy 评论0 收藏0

发表评论

0条评论

lsxiao

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<