JDBC_数据库连接池

数据库连接池

数据库连接池的概念

用池来管理Connection,这可以重复使用Connection
有了池,所以我们就不用自己来创建Connection
而是通过池来获取Connection对象
当使用完Connection后,调用Connectionclose()方法也不会真的关闭Connection,而是把Connection“归还”给池。
池就可以再利用这个Connection对象了。

池参数(所有池参数都有默认值):
1. 初始大小:10个
2. 最小空闲连接数:3个
3. 增量:一次创建的最小单位(5个)
4. 最大空闲连接数:12个
5. 最大连接数:20个
6. 最大的等待时间:1000毫秒

四大连接参数
连接池也是使用四大连接参数来完成创建连接对象!

实现的接口
连接池必须实现:javax.sql.DataSource接口!

连接池返回的Connection对象,它的close()方法与众不同!
调用它的close()不是关闭,而是把连接归还给池!

1-C3P0简介

  C3P0也是开源免费的连接池!C3P0被很多人看好!

2-C3P0的使用

C3P0中池类是:ComboPooledDataSource。

public void fun1() throws propertyvetoexception, sqlexception {

    combopooleddatasource ds = new combopooleddatasource();

    ds.setdriverclass("com.mysql.jdbc.driver");
    ds.setjdbcurl("jdbc:mysql://localhost:3306/lingyao");
    ds.setuser("root");
    ds.setpassword("123");

    //每次增量,当需要创建connection对象时,一次创建几个
    ds.setacquireincrement(5);
    //当创建池对象后,池中应该有几个connection对象
    ds.setinitialpoolsize(20);
    //池中最少connection个数,如果少于这个值,就会创建connection
    ds.setminpoolsize(2);
    //池中最大连接个数
    ds.setmaxpoolsize(50);

    connection con = ds.getconnection();
    system.out.println(con);
    con.close();
}


配置文件要求:
文件名称:必须叫c3p0-config.xml
文件位置:必须在src下

c3p0也可以指定配置文件,而且配置文件可以是properties
也可以是xml的。当然xml的高级一些了。
但是c3p0的配置文件名必须为c3p0-config.xml,并且必须放在类路径下。

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <default-config>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/lingyao</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">123456</property>
        <property name="acquireIncrement">3</property>
        <property name="initialPoolSize">10</property>
        <property name="minPoolSize">2</property>
        <property name="maxPoolSize">10</property>
    </default-config>
    <named-config name="oracle-config">
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/lingyao</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">123456</property>
        <property name="acquireIncrement">3</property>
        <property name="initialPoolSize">10</property>
        <property name="minPoolSize">2</property>
        <property name="maxPoolSize">10</property>
    </named-config>
</c3p0-config>

c3p0的配置文件中可以配置多个连接信息
可以给每个配置起个名字,
这样可以方便的通过配置名称来切换配置信息。
上面文件中默认配置为mysql的配置,名为oracle-config的配置也是mysql的配置,呵呵。

public void fun2() throws PropertyVetoException, SQLException {
    ComboPooledDataSource ds = new ComboPooledDataSource();
    Connection con = ds.getConnection();
    System.out.println(con);
    con.close();
}

public void fun2() throws PropertyVetoException, SQLException {
    ComboPooledDataSource ds = new ComboPooledDataSource("orcale-config");
    Connection con = ds.getConnection();
    System.out.println(con);
    con.close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值