ipv6无网络访问权限-钉钉怎么签到
![阿里巴巴api](/uploads/image/0772.jpg)
2023年4月4日发(作者:软件架构)
阿⾥巴巴Druid数据源及使⽤
第⼀部分:数据源的集中⽐较。
⽬前常⽤的数据源主要有c3p0、dbcp、proxool、druid,先来说说他们
Spring推荐使⽤dbcp;
Hibernate推荐使⽤c3p0和proxool
1、DBCP:apache
DBCP(DataBaseconnectionpool)数据库连接池。是apache上的⼀个java连接池项⽬,也是tomcat使⽤的连接池组件。单独使⽤
dbcp需要3个包:,,由于建⽴数据库连接是⼀个⾮常耗时耗资源的⾏为,所
以通过连接池预先同数据库建⽴⼀些连接,放在内存中,应⽤程序需要建⽴数据库连接时直接到连接池中申请⼀个就⾏,⽤完后再放回去。
dbcp没有⾃动的去回收空闲连接的功能。
2、C3P0:
C3P0是⼀个开源的jdbc连接池,它实现了数据源和jndi绑定,⽀持jdbc3规范和jdbc2的标准扩展。c3p0是异步操作的,缓慢的jdbc操作
通过帮助进程完成。扩展这些操作可以有效的提升性能。⽬前使⽤它的开源项⽬有Hibernate,Spring等。c3p0有⾃动回收空闲连接功
能。
3、Proxool:Sourceforge
Proxool是⼀种Java数据库连接池技术。是sourceforge下的⼀个开源项⽬,这个项⽬提供⼀个健壮、易⽤的连接池,最为关键的是这个连
接池提供监控的功能,⽅便易⽤,便于发现连接泄漏的情况。
综合来说,稳定性是dbcp>=c3p0>proxool
后来阿⾥巴巴的druid开源了,可以是前⽆古⼈后⽆来者,最强没有之⼀,是否的稳定,在⼤并发中表现⼗分好
今天来介绍的主要是监控,德鲁伊提供的这个监控组件,⾮常的便利,截图如下:
这是针对所有sql的监控,运⾏效率等等都能看到
对于url的监控,请求时间,并发等等,⾮常便利
当前数据源的配置信息也能够看到
监控session,这是我当前登录的
总的来说,这个数据源还是不错的,⾮常推荐,如今也已经到了1.0.23版本
第⼆部分:详讲在普通项⽬中的配置。
⽂章简介
Druid⾸先是⼀个数据库连接池,但它不仅仅是⼀个数据库连接池,它还包含⼀个ProxyDriver,⼀系列内置的JDBC组件库,⼀个SQLParser。Druid⽀持所有
JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQLServer、H2等等。
Druid针对Oracle和MySql做了特别优化,⽐如Oracle的PSCache内存占⽤优化,MySql的ping检测优化。Druid在监控、可扩展性、稳定性和性能⽅⾯都有明显
的优势。Druid提供了Filter-Chain模式的扩展API,可以⾃⼰编写Filter拦截JDBC中的任何⽅法,可以在上⾯做任何事情,⽐如说性能监控、SQL审计、⽤户名
密码加密、⽇志等等。
配置
为了⽅便⼤家迁移,Druid的配置和DBCP是基本⼀致的,如果你原来是使⽤DBCP,迁移是⼗分⽅便的,只需要把
ataSource修改为ataSource就好了。
在上⾯的配置中,通常你需要配置url、username、password,maxActive这三项。
第三部分druid的使⽤
1:添加maven依赖
2:添加⼀个资源配置⽂件(建议)
driver=
url=jdbc:mysql:///wangjian?characterEncoding=UTF-8&autoReconnect=true
username=root
password=1234
#最⼤连接数
maxActive=3
3:创建⼯⼚类读取资源⽂件并创建urce的实例
需要先声明DruidDataSoure设置连接信息,其后再赋值给urce。完整代码如下:
Propertiesprop=newProperties();
(ourceAsStream("ties"));
Stringdriver=perty("driver");
Stringurl=perty("url");
Stringusername=perty("username");
Stringpassword=perty("password");
StringmaxActive=perty("maxActive");
//声明DruidDataSource
DruidDataSourceds=newDruidDataSource();
verClassName(driver);
(url);
rname(username);
sword(password);
Active(nt(maxActive));
相信⼩伙伴位,在创建DruidDataSource以后,以然已经会使⽤了吧。哈哈~
4:对密码进⾏加密以后再保存到资源⽂件中并配置
由于在资源⽂件中,配置了数据库明⽂密码,为了保护密码,可以使⽤Druid数据源密码加密的功能。
4.1、⾸先对密码进⾏加密获取⼀个publickey和加密后的密码
执⾏以下命令:
C:/>java–Tools密码
上⾯的命令中,蓝线部分为随机⽣成的publickey,每次随机。红线中的为⽣成的密码。
4.2、将publickey和密码配置到资源⽂件中
⽣成密码的命令:Toolse234
driver=
url=jdbc:mysql:///wangjian?characterEncoding=UTF-8&autoReconnect=true&useSSL=false
username=root
#经过加密以后的密码
password=XSY9axcew83ZVNeZUmgrOPXwP0d3ZziFmqal4IZPAAJ4mpnwbouWiUaqD…
#最⼤连接数
maxActive=3
#⽣成的公钥
publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANTxMV9TZYKpQCm7E+mEOhW0…
4.3、修改DruidDataSource实例化过程如下
主要是添加publickey和经过加密的密码,并指定过虑器:
//读取资源⽂件
Propertiesprop=newProperties();
(ourceAsStream("ties"));
Stringdriver=perty("driver");
Stringurl=perty("url");
Stringusername=perty("username");
Stringpassword=perty("password");
StringmaxActive=perty("maxActive");
Stringpublickey=perty("publickey");
//声明DruidDataSource
DruidDataSourceds=newDruidDataSource();
verClassName(driver);
(url);
rname(username);
sword(password);
Active(nt(maxActive));
//config:使⽤ConfigFilter解密,Stat:启动监控功能StatFilter
ters("config,stat");
//设置解密使⽤的publickey
nectionProperties("t=true;="+publickey);
5:配置监功能查看Druid数据源的监控信息
配置Druid⽤于监控的Servlet如下:
总结:
1:Druid数据源⽤维护连接对象是DruidDataSource。
2:可以通过ConfigTools对⽤户的密码进⾏加密。
3:可以通过配置的⽅式,监控SQL执⾏。
更多推荐
阿里巴巴api
发布评论