数据库连接池
好处
实现
- 标准接口:DataSource javax.sql包下的
- 方法:
- 获取连接:getConnection()
- 归还连接:Connection.close()
- 一般我们不去实现它,有数据库厂商来实现
- C3P0:数据库连接池技术
- Druid:数据库连接池实现技术,由阿里巴巴提供的
- C3P0:数据库连接池技术
- 步骤:导入jar包(两个) c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar和jdbc的驱动jar包
- 定义配置文件:名称:c3p0.properties或者c3p0-config.xml
- 路径:直接将文件放在src目录下即可
- 创建核心对象 数据库连接池对象ComboPooledDataSource
- 获取连接:getConnection
public class C3p0 {
public static void main(String[] args) throws SQLException {
ComboPooledDataSource ds = new ComboPooledDataSource();
Connection conn = ds.getConnection();
}
}
- Druid:数据库连接池实现技术
- 步骤:
- 导入jar包druid-1.0.9.jar
- 定义配置文件:
- 名称druid.properties
- 路径:直接将文件放在src目录下即可
- 加载配置文件
- 获取连接池对象获取连接
public class Druid {
public static void main(String[] args) throws Exception {
Properties prop = new Properties();
InputStream rs = DruidDemo01.class.getClassLoader().getResourceAsStream("druid.properties");
prop.load(rs);
DataSource ds = DruidDataSourceFactory.createDataSource(prop);
Connection conn = ds.getConnection();
}
}
c3p0配置文件
<c3p0-config>
<!-- 使用默认的配置读取连接池对象-->
<default-config>
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/school?useSSL=false</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 连接池参数 -->
<!-- 初始连接数 -->
<property name="initialPoolSize">5</property>
<!-- 最大连接数 -->
<property name="maxPoolSize">10</property>
<!-- 最大等待时间 -->
<property name="checkoutTimeout">2000</property>
<!-- 最大空闲回收时间 -->
<property name="maxIdleTime">1000</property>
</default-config>
</c3p0-config>
druid配置文件
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/school?useSSL=false
username=root
password=123456
initialSize=5
maxActive=10
maxWait=3000
maxIdle=8
minIdle=3