博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Druid入门
阅读量:5929 次
发布时间:2019-06-19

本文共 2344 字,大约阅读时间需要 7 分钟。

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=testdriverClassName = com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/testusername=rootpassword=overdoseinitialSize=5maxActive=10minIdle=3maxWait=60000removeAbandoned=trueremoveAbandonedTimeout=180timeBetweenEvictionRunsMillis=60000 minEvictableIdleTimeMillis=300000validationQuery=SELECT 1testWhileIdle=truetestOnBorrow=falsetestOnReturn=falsepoolPreparedStatements=truemaxPoolPreparedStatementPerConnectionSize=50filters=stat

单个配置

配置 缺省值 解释
name 当存在多个数据源时, 通过名字区分
url 连接数据库的Url <br/> mysql: jdbc:mysql://localhost:3306/test <br/> oracle : jdbc:oracle:thin:@localhost:1521:ocnauto
username 连接数据库的用户名
password 连接数据库的密码
driverClassName 根据url自动识别 可选的配置 druid会自动根据url选择对应的驱动
initialSize 0 初始化时创建连接的个数
maxActive 8 最大连接池数量
maxIdle 没用 详见
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, 则自动补充连接

转载地址:http://yoevx.baihongyu.com/

你可能感兴趣的文章
Linux基础命令---arping
查看>>
2018年阿里云NoSQL数据库大事盘点
查看>>
对Javascript“闭包”的简单理解
查看>>
07.Java类加载问题
查看>>
原创C#多数据库组件(SQL+Oracle+MySQL)及用户操作手册|CSFramework.DB.dll ...
查看>>
Flask 教程 第二十章:加点JavaScript魔法
查看>>
APT案例之点击事件
查看>>
专访熊节:编程其实是个社会活动
查看>>
转义符与运算符
查看>>
深入解析:从源码窥探MySQL优化器
查看>>
使用Volley传输网络数据
查看>>
mysql优化
查看>>
论如何安心过大年-MySQL巡检篇
查看>>
阿里电面试题汇总
查看>>
Tomcat环境变量,端口号,编码格式,项目路径,默认页的配置 ...
查看>>
书籍:掌握Python脚本系统管理 Mastering Python Scripting for System Administrators - 2019.pdf...
查看>>
Centos-mongodb单机安装配置
查看>>
SAP S/4HANA使用ABAP获得生产订单的状态
查看>>
flutter版本的玩Android客户端
查看>>
Spark in action on Kubernetes - Playground搭建与架构浅析
查看>>