一、数据库连接池
概念:其实就是一个容器(集合),存放数据库连接的容器。
当系统初始化好之后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,将从容器中获取连接对象;当用户访问完后,会将连接对象归还给容器。
优点:
- 节约资源
- 用户访问高效
实现:
- 标准接口:DataSource java.sql包下的
- 方法:
- 获取连接:
getConnection()
- 归还连接:如果连接对象Connection是从连接池中获取的,那么调用
Connection.close()
方法则不会再关闭连接,而是归还连接。
- 获取连接:
- 方法:
- 我们一般不去实现它,而是由数据库厂商来实现
- CP30:数据库连接池技术
- Druid:数据库连接池实现技术,由阿里巴巴提供
二、CP30:数据库连接池技术
使用步骤:
-
导入
maven
工程<dependencies> <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <!-- https://mvnrepository.com/artifact/com.mchange/mchange-commons-java --> <dependency> <groupId>com.mchange</groupId> <artifactId>mchange-commons-java</artifactId> <version>0.2.12</version> </dependency></dependencies>
-
配置文件
c3p0-config.xml
<c3p0-config> <!-- 使用默认的配置读取连接对象 --> <default-config> <!-- 连接参数 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl"