概念
目的
- 在实际开发中,"获得连接"和"释放资源",是非常消耗资源的两个过程
- 为解决此类性能问题,我们采用连接池技术,来共享Connection
- 不需要每次都创建连接和释放连接了,这些都交给了连接池
原理
- 用连接池来管理Connection,不需要自己创建,通过连接池来获取Connection对象
- 当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给连接池
- SUN公司为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口
- 常见的连接池:dbcp,c3p0连接池
dbcp连接池
概念
使用
- 导入相关jar包
- commons-dbcp-1.4.jar
- commons-pool-1.5.6.jar
常见配置
分类 | 属性 | 描述 |
必须项 | driverClassName | 数据库驱动名称 |
url | 数据库的地址 | |
username | 用户名 | |
password | 密码 | |
基本项(扩展) | maxActive | 最大连接数量 |
minIdle | 最小空闲连接 | |
maxIdle | 最大空闲连接 | |
initialSize | 初始化连接 |
案例
c3p0连接池
概念
C3P0开源免费的连接池!目前使用它的开源项目有:Spring、Hibernate等
使用
- 添加jar包
- 编写配置文件
- c3p0-config.xml,放在src中(c3p0连接池,自动加载,src下的c3p0-config.xml文件)
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/itheima</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">10</property>
</default-config>
</c3p0-config>
案例