1 数据库连接池的基本思想
为数据库连接建立一个“缓存池”,预先在缓存池中放入一定数量的连接,当需要和数据库建立连接时,只需要从“缓存池”中取出一个,使用完毕后再放入数据库连接池。数据库连接池负责分配,管理,释放数据库连接,它允许应用程序使用一个现有的连接,而不是重新建立一个。数据库连接池在初始化时将创建一定数量的连接放入连接池中,可以指定最小连接数和最大连接数,这样既保证了数据库中维护了一定数量连接,又保证数据库中的连接不至于太多,当应用程序请求的连接数超过最大连接数量时,这些请求会被加入等待队列中。
2 C3P0 使用方法如下:
1下载jar 包加入工程当中
2 建立一个c3p0-config.xml
3配置如下
<?xml version="1.0"encoding="UTF-8"?>
<c3p0-config>
<!-- This app is massive! -->
<named-config name="bookStoreApp">
<property name="user">root</property>
<property name="password">1234</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost/book_store</property>
<!-- 若数据库中连接不足时,一次向数据库服务器申请连接的个数-->
<property name="acquireIncrement">50</property>
<!-- 初始化数据库连接池创建连接的数量-->
<property name="initialPoolSize">100</property>
<!-- 数据库连接池中最少的连接数 -->
<property name="minPoolSize">50</property>
<!-- 最多的连接数 -->
<property name="maxPoolSize">1000</property>
<!-- 数据库连接池中可以维护的Statement的个数 -->
<property name="maxStatements">50</property>
<!-- 每个链接可以创建的Statement的个数-->
<property name="maxStatementsPerConnection">5</property>
</named-config>
</c3p0-config>
4 获取Connection
package com.test;
importjava.sql.Connection;
importjava.sql.SQLException;
importcom.mchange.v2.c3p0.ComboPooledDataSource;
public class TestC3P0{
public static void main(String[] args) throws SQLException {
ComboPooledDataSource cpds = new ComboPooledDataSource("bookStoreApp");
Connection connection = cpds.getConnection();
}
}