为什么使用连接池:

在一般项目中操作数据库,每一次的操作都是建立一个连接,操作完成后才释放连接,而JDBC不会保证连接的持续,超过一定时间就会释放该连接。而建立新的连接都需要100多毫秒,从而耗费时间。若使用连接池进行池化连接,随时取用,平均每次取用仅需要15毫秒左右。在高并发随机访问数据库的情况下使用连接池能很好的提高效率。

c3p0是一个开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展,使用它的开源项目有Spring、Hibernate等。c3p0还具有自动回收空闲连接的功能。


c3p0基本使用:(这里以连接MySQL数据库为例)。

user: 用户名

password :密码

driverClass: 驱动(如mysql驱动 com.mysql.jdbc.Driver)

jdbcUrl: 路径(如mysql路径 jdbc:mysql://localhost:3306/数据库名)

initalPoolSize:连接池初始化时创建连接数

acquireIncrement:连接池无空闲连接可用时,一次性创建的新连接数,默认值为3

maxPoolSize:连接池中拥有的最大连接数,默认值为15

minPoolSize:连接池中拥有的最小连接数

maxidelTime:连接最大空闲时间,如超过这时间,某个数据库连接还没使用则会断开该连接, 默认为0,0表示永远不会断开连接

maxConnectionAge:配置连接的生存时间,超过该时间则会自动断开并丢弃,默认值为0,表示不会对连接的生存时间进行限制。

maxIdleTimeExcessConnections:这个配合为减轻连接池的负载,配置不为0,则会将连接池的连接数量保持到minPoolSize,为0则不处理。

数据源开发的步骤:

1.导入数据源的坐标和数据库驱动坐标

2.创建数据源对象

3.设置数据源的基本连接数据

4.使用数据源获取连接资源

5.归还连接资源

单元测试具体实现如下:

pom.xml文件
在这里插入图片描述
测试类:

打印结果:
在这里插入图片描述
我们看到有地址值输出,说明我们连接成功。

PS:
如果出现 A ResourcePool could not acquire a resource from its primary factory or source 异常

建议查看 pom.xml 中数据库驱动jar包是否合适,引入的驱动包要跟自己本地的数据库相匹配。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐