ipv6无网络访问权限-钉钉怎么签到

阿里巴巴api
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版本

1.0.23

a

druid

${n}

第⼆部分:详讲在普通项⽬中的配置。

⽂章简介

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依赖

a

druid

1.0.18

mysql

mysql-connector-java

5.1.38

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如下:

DruidStatView

ewServlet

DruidStatView

/druid/*

总结:

1:Druid数据源⽤维护连接对象是DruidDataSource。

2:可以通过ConfigTools对⽤户的密码进⾏加密。

3:可以通过配置的⽅式,监控SQL执⾏。

更多推荐

阿里巴巴api