【JavaWeb】阿里的德鲁伊和c3p0连接池

前言

Jdbc六步骤,Jdbc的封装、sql注入与预编译,自定义连接池,本质上一直在做一件事情,封装工具类JdbcUtil,并一步一步将其优化。需要我们自己封装么?其实有现成的框架可以直接用,市面上也有几个常用的开源连接池:c3p0以及阿里巴巴的德鲁伊。
既然是开源,那么经过多版本的迭代,功能肯定更加地强大,使用起来也更加地方便。

一、c3p0连接池

看c3p0官网:
在这里插入图片描述
①下载地址

点进去可以下载最新版的c3p0。

②文档说明

也就相当于工具说明书,不然别人也不知道怎么使用c3p0,那么具体如何使用?
在这里插入图片描述
①导包

将说明中的这两个jar包导入开发工具IDEA即可。

④创建数据源

文档中有编写的代码模板,我们只需要复制过来修改其中的参数就可以了,这些参数都很熟悉。

  • mysql驱动路径
  • 数据库url路径
  • 用户名
  • 密码

前几天学过配置文件,将这几个常用参数放入配置文件里面,这样代码也能更具有可拓展性。
既然我们都能想到配置文件,那官方文档中自然也会有它的说明,继续看文档:

在这里插入图片描述
⑤配置方法
其中有四种配置方式,最常见的是使用xml来配置。

⑥xml文件的设置

其中文件名要以“c3p0-config.xml”的命名规则,不然没法运行,并且要放在IDEA的src路径里面。
至于其配置文件如何编写,一样还是继续套用模板,我们只需要修改其中的属性:

在这里插入图片描述
⑦数据库连接参数
设置成自己的参数即可。

⑧连接池参数
这个在具体的项目中设置不同的参数,其实理解起来也都是见名知意的:

  • initialPoolSize:初始化连接池大小
  • maxIdleTime:最大空闲时间
  • maxPoolSize:连接池最大容量
  • minPoolSize:连接池最小容量
  • maxStatements:最大语句对象
    最后代码编写完了,做一个测试,同时也再回顾一遍连接数据库的代码:
    在这里插入图片描述
    ①配置c3p0连接池
    如果有xml配置文件,那么配置信息不用再逐个设置了。

②从连接池中获取连接
直接从c3p0连接池中获取连接。

③预编译及处理结果
④释放资源
close方法本来的意思是将连接销毁掉,但事实上c3p0中close方法是将连接返回到连接池中而不是销毁。

二、Druid

在GitHub中可以找到druid:
在这里插入图片描述

中文译名:德鲁伊。这是阿里巴巴开源的一个数据库连接池。
Druid是目前最好的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池,想想一年一度的双十一,春运的抢火车票也就能理解了。
在这里插入图片描述
①创建德鲁伊对象
我们可以发现其API还是那些属性设置,当然这是最基础的4个,还有一些比如连接池大小什么的,这些要具体项目再设置。

②配置文件druid.properties
同样的道理,可以将这些属性放到一个配置文件里面,从而提高代码的拓展性。
c3p0中使用的是xml,德鲁伊中使用properties。
配置文件完成,那如何使用它呢?
在这里插入图片描述

①工厂设计模式
DruidDataSourceFactory,德鲁伊数据源工厂,既然是工厂那通过它就可以直接创建数据源,其中参数即为所编写的配置文件,其余步骤也就是连接数据库的常规操作了。
②从连接池中获取连接
③预编译及处理结果
④释放资源
同样的道理,德鲁伊中也改造了连接的close方法。

三、工具类的封装优化

今天学了连接池,那么也可以把连接池封装进JdbcUtil中,比如说我们使用德鲁伊连接池:
在这里插入图片描述

①将德鲁伊封装进JdbcUtil类中
通过工厂设计模式获取数据源

②获取连接封装
通过德鲁伊数据源获取连接

③释放资源
其中连接的close方法被改造了,并不是释放连接而是将连接放回连接池。
优化好JdbcUtil类后,再直接用JdbcUtil类获取连接,实际上就是德鲁伊连接池的连接。

猜你喜欢

转载自blog.csdn.net/wang_qiu_hao/article/details/125204486