DBCP和C3P0连接MySQL数据库

连接池是每个项目中都需要用到的技术,这里介绍DBCP和C3P0的使用。
一、DBCP
1、引入两个jar包:
commons-dbcp-1.4.jar
commons-pool-1.5.6.jar
2、代码实现
有两种方式可以实现,第一种是硬编码实现,第二种是配置文件方式,推荐使用第二种,因为连接数据库参数有可能发生变化,使用配置文件的方式容易维护,这里只介绍第二种方式,第一种方式会简单提一下,之后关于C3P0的部分也是一样的。

2.1、载src路径下创建配置文件db.properties
配置文件内容:
#如果主机地址是localhost,端口是3306,可以写成url=jdbc:mysql:///database_test
url=jdbc:mysql://localhost:3306/database_test
username=root
password=root
driverClass=com.mysql.jdbc.Driver
#初始化连接数
initialSize=5
#最大连接数
maxActive=10
#最大空闲时间,单位是秒
maxIdle=3000
2.2实现工具类JdbcUtil.java
public class JdbcUtil{
    Connection conn = null;
    public static Connection getConnectioin(){
        //加载配置文件
        Properties props = new Properties();
        InputStream in = JdbcUtil.class.getResourceAsStream("/db.properties");
        props.load(in);
        //调用DBCP核心对象BasicDataSource
        //使用配置文件方式返回的是DataSource类型
        DataSource dataSource = BasicDataSourceFactory.createDataSource(props);
        //不需要再配置连接信息,直接获取连接就可以了
        return conn = dataSource.getConnection();
    }
}

二、C3P0

1、在src路径下配置xml文件c3p0-config.xml
文件名不要换成别的,因为会默认加载src路径下的这个xml文件
文件内容:
<c3p0-config>
    <default-config>
        <!-- url -->
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/database_test
        </property>
        <!-- 驱动 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <!-- 用户名 -->
        <property name="user">root</property><!-- 密码 -->
        <property name="password">root</property>
        <!-- 初始化连接数 -->
        <property name="initialPoolSize">3</property>
        <!-- 最大连接数 -->
        <property name="maxPoolSize">6</property>
        <!-- 最大空闲时间 -->
        <property name="maxIdleTime">1000</property>
    </default-config>


    <named-config name="other_config">
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/database_other_test</property>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="user">root</property>
        <property name="password">root</property>
        <property name="initialPoolSize">3</property>
        <property name="maxPoolSize">6</property>
        <property name="maxIdleTime">1000</property>
    </named-config>


</c3p0-config>
2、实现工具类JdbcUtil.java
public class JdbcUtil{
    Connection conn = null;
    public static Connection getConnection(){
        //创建c3p0核心对象
        //对象不需要传入参数,会默认加载src路径下的c3p0-config.xml文件下<default-config>标签下的配置信息
        //如果传入参数的话,应该传配置文件里的<named-config name="other_config">标签中name属性的值,选择连接哪个数据库
        ComboPooledDataSource cpDataSource = new ComboPooledDataSource();
        //获取连接
        return cpDataSource.getConnection();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值