JDBC连接池-C3P0连接
JDBC连接池-C3P0连接
c3p0连接池的学习英语好的看英文原版 c3p0 - JDBC3 Connection and Statement Pooling
使用c3p0连接池 三种方法:1.实例化和配置 ComboPooledDataSource 2.使用DataSource工厂类 3建立自己池数据源
c3p0 是开源免费的连接池
1.实例化和配置 ComboPooledDataSource
在src目录下添加c3p0-config.xml文件
文件名内容为:
<?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <default-config> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/bookstore</property> <property name="user">root</property> <property name="password">root</property> <property name="initialPoolSize">5</property> <property name="maxPoolSize">20</property> </default-config> <named-config name="bookStore"> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql://localhost:3306/bookstore</property> <property name="user">root</property> <property name="password">root</property> </named-config> </c3p0-config>
Testc3p0.java
package com.study.jdbc.test; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import org.junit.Test; import com.mchange.v2.c3p0.ComboPooledDataSource; import com.study.jdbc.Utils.C3P0Utils; import com.study.jdbc.Utils.JDBCUtils_V3; public class TestC3p0 { @Test public void test1(){ Connection conn=null; PreparedStatement pstm=null; //加载c3p0-config.xml文件中默认的config ComboPooledDataSource dataSource =new ComboPooledDataSource(); //加载文件中 <named-config name="bookStore"> </named=config> 的配置信息 ComboPooledDataSource dataSource1 =new ComboPooledDataSource("bookStore"); try { conn=dataSource.getConnection(); System.out.println(conn); String sql="insert into user values(18,?,?)"; pstm=conn.prepareStatement(sql); pstm.setString(1,"吕布"); pstm.setString(2,"点错"); int rows =pstm.executeUpdate(); if (rows>0) { System.out.println("ok"); }else { System.out.println("no"); } } catch (SQLException e) { e.printStackTrace(); }finally{ //dataSource.backConnection(conn); JDBCUtils_V3.release(conn,pstm,null); } } }