c3p0连接mysql数据库

JDBC 的数据库连接池使用 javax.sql.DataSource 来表示,DataSource 只是一个接口,该接口通常由服务器(Weblogic, WebSphere, Tomcat)提供实现,也有一些开源组织提供实现:
DBCP 数据库连接池
C3P0 数据库连接池
DataSource 通常被称为数据源,它包含连接池和连接池管理两个部分,习惯上也经常把 DataSource 称为连接池

下载c3p0的jar包;
http://jarfiles.pandaidea.com/c3p0.html
放入到lib目录下,并add path
单一的测试: set方法来设置属性值
@Test
public void testC3P0() throws Exception{
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "com.mysql.jdbc.Driver" ); //loads the jdbc driver            
cpds.setJdbcUrl( "jdbc:mysql:///atguigu" );
cpds.setUser("root");                                  
cpds.setPassword("1230");   
System.out.println(cpds.getConnection()); 
}
1.c3p0的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <named-config name="c3p0">
        <!-- 指定连接数据源的基本属性 -->
        <property name="user">root</property>
        <property name="password">123456</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
        
        <!-- 若数据库中连接数不足时, 一次向数据库服务器申请多少个连接 -->
        <property name="acquireIncrement">5</property>
        <!-- 初始化数据库连接池时连接的数量 -->
        <property name="initialPoolSize">5</property>
        <!-- 数据库连接池中的最小的数据库连接数 -->
        <property name="minPoolSize">5</property>
        <!-- 数据库连接池中的最大的数据库连接数 -->
        <property name="maxPoolSize">10</property>
        <!-- C3P0 数据库连接池可以维护的 Statement 的个数 -->
        <property name="maxStatements">20</property>
        <!-- 每个连接同时可以使用的 Statement 对象的个数 -->
        <property name="maxStatementsPerConnection">5</property>
    </named-config>
</c3p0-config>
   2.优化getConnection方法
// DataSource 通常被称为数据源,它包含连接池和连接池管理两个部分,习惯上也经常把 DataSource 称为连接池
          private   static  DataSource dataSource =  null ;
    //数据库连接池应只被初始化一次. 
    static{
        dataSource = new ComboPooledDataSource("c3p0");
    }
    
    public static Connection getconnection() throws Exception {
        return dataSource.getConnection();
    }

3: 测试结果
@Test
    public void testJdbcTools() throws Exception{
        Connection conn = JDBCTools.getconnection();
        System.out.println(conn);
    }

你可能感兴趣的:(c3p0连接mysql数据库)