4天贯通JDBC技术八、数据库连接池

C3P0数据库连接池

// 保证在所有的通过C3P0获取的连接中,只有一个DataSource的对象。(推荐)

private static DataSource source = null;

static {

source = new ComboPooledDataSource("helloc3p0");

}

 

// 获取数据库的连接方式3:使用c3p0数据库连接池获取数据库的连接,使用配置文件

public static Connection getConnection3() throws Exception {

return source.getConnection();

}

对应的配置文件:c3p0-config.xml

<c3p0-config>

 

<named-config name="helloc3p0">

<!-- 提供数据库连接的4个基本信息 -->

<property name="jdbcUrl">jdbc:mysql:///test</property>

<property name="driverClass">com.mysql.jdbc.Driver</property>

<property name="user">root</property>

<property name="password">123456</property>

<!-- 当连接池中的数量不足时,c3p0连接一次性向数据库服务器申请的连接数 -->

<property name="acquireIncrement">5</property>

<!-- 初始化数据库连接池时,池中存在的连接数 -->

<property name="initialPoolSize">10</property>

<!-- 数据库连接池中最少容纳的连接数 -->

<property name="minPoolSize">5</property>

<!-- 数据库连接池中最大容纳的连接数 -->

<property name="maxPoolSize">100</property>

<!-- 连接池中,最多允许存在的Statement的数量 -->

<property name="maxStatements">10</property>

<!-- 一次连接中,最多容纳的Statement的个数 -->

<property name="maxStatementsPerConnection">5</property>

 

 

</named-config>

</c3p0-config>

 

 

DBCP数据库连接池

//随着类的加载,使用BasicDataSourceFactory的静态方法createDataSource()返回一个

//DataSource的对象

private static DataSource source1 = null;

static {

Properties info = new Properties();

// info.load(new FileInputStream("dbcp.properties"));

InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream(

"com/atguigu/java/dbcp.properties");

try {

info.load(is);

source1 = BasicDataSourceFactory.createDataSource(info);

} catch (Exception e) {

e.printStackTrace();

}

}

 

// 获取数据库的连接方式4:使用DBCP数据库连接池获取数据库的连接(推荐)

public static Connection getConnection5() throws Exception {

 

return source1.getConnection();

}

 

配置文件dbcp.properties:

username=root

password=123456

url=jdbc:mysql://127.0.0.1:3306/test

driverClassName=com.mysql.jdbc.Driver

 

initialSize=10

maxActive=100