07 c3p0 连接池的使用

使用前提:导包

Paste_Image.png

方式一:

public class Demo1 {
    private static String url = "jdbc:mysql://localhost:3306/";
    private static String user = "root";
    private static String password = "root";
    private static String driverClass = "com.mysql.jdbc.Driver";


    public static void main(String[] args) throws Exception {
        //1)创建连接池对象
        ComboPooledDataSource cds = new ComboPooledDataSource();
        
        //2)设置连接参数
        cds.setJdbcUrl(url);
        cds.setUser(user);
        cds.setPassword(password);
        cds.setDriverClass(driverClass);
        
        //3)设置连接池相关的参数
        cds.setInitialPoolSize(5);//初始化连接数
        cds.setMaxPoolSize(10);//最大连接数
        cds.setCheckoutTimeout(3000);//最大等待时间
        cds.setMinPoolSize(3); //最小连接数
        
        //4)获取连接
        for(int i=1;i<=11;i++){
            Connection conn = cds.getConnection();
            System.out.println(conn);
            
            //关闭第3个
            if(i==3){
                conn.close();//本质是把连接对象放回连接池中
            }
        }
    }
    
}

方式二:
注意:

使用xml配置文件读取c3p0的方法

  1. 需要把一个名称为c3p0-config.xml文件放在src目录下,c3p0会自动读取这个文件。
  2. xml配置文件中属性名称和手动设置方法名保持一致!!!!c3p0则会自动读取
配置文件.xml
<c3p0-config>
    <!-- 默认配置 -->
  <default-config>
        <!-- 连接参数 -->
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/employee_db</property>
        <property name="user">root</property>
        <property name="password">221121</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        
        <!-- 连接池参数 -->
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">12</property>
        <property name="checkoutTimeout">5000</property>
        <property name="minPoolSize">3</property>

  </default-config>

    <!-- 命名配置 -->
  <named-config name="oracle">
         <!-- 连接参数 -->
        <property name="jdbcUrl">jdbc:oracle:thin:@localhost:1521:orcl</property>
        <property name="user">eric</property>
        <property name="password">123456</property>
        <property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
        
        <!-- 连接池参数 -->
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">12</property>
        <property name="checkoutTimeout">5000</property>
        <property name="minPoolSize">3</property>
   </named-config>


</c3p0-config>
public static void main(String[] args) throws Exception {

        //1)创建连接池对象
        
        /**
         *   1)new ComboPooledDataSource(): 使用没有参数的构造方法,读取的是default-config的配置信息
         *   2)new ComboPooledDataSource(name的属性值): 使用有参的构造方法,读取的是name-config配置信息
         */
        ComboPooledDataSource cds = new ComboPooledDataSource();
        //ComboPooledDataSource cds = new ComboPooledDataSource("oracle");
        
        //2)获取连接
        for(int i=1;i<=13;i++){
            Connection conn = cds.getConnection();
            System.out.println(conn);
            
            //关闭第3个
            if(i==3){
                conn.close();//本质是把连接对象放回连接池中
            }
        }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容