数据库连接池简述
1. 概念:其实就是一个容器(集合),存放数据库连接的容器。
当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
2. 好处:
1. 节约资源。
2. 用户访问高效。
3. 实现:
1. 标准接口:DateSource javax.sql包下的
1. 方法:
* 获取连接:getConnection()
* 归还连接: Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.close方法,则不会再关闭连接了。而是直接归还。
2. 我们一般不去实现它,由数据库厂商来实现
1. C3P0:数据库连接池技术,由第三方实现
2. Druid:数据库连接池实现技术,由阿里巴巴提供的
C3P0:数据库连接池技术
* C3P0:数据库连接池技术,由第三方实现
* 步骤:
1. 导入jar包 (两个) c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar
* 不要忘记导入数据库驱动jar包 mysql-connector-java-5.1.37-bin.jar
2. 定义配置文件:
* 名称:c3p0.properties 或者 c3p0-config.xml
* 路径:直接将文件放在src目录下即可。
3. 创建核心对象 数据库连接池对象 CombooledDataSource
4. 获取连接:getConnection
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class C3p0Demo2 {
public static void main(String[] args) throws SQLException {
testNameConfig();
}
public static void testNameConfig() throws SQLException {
DataSource ds = new ComboPooledDataSource("otherc3p0");
for (int i = 1; i <= 10; i++) {
Connection conn = ds.getConnection();
System.out.println(i + ":" + conn);
}
}
}
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db4</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">10</property>
<property name="checkoutTimeout">3000</property>
</default-config>
<named-config name="otherc3p0">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property