C3P0 数据库连接池之一

C3P0连接池

1.先导入jar包
    * c3p0-0.9.1.2.jar

2.提供了类ComboPooledDataSource
    * new ComboPooledDataSource()
    * 设置4大参数
        cpds.setDriverClass( "com.mysql.jdbc.Driver" ); 
        cpds.setJdbcUrl( "jdbc:mysql:///day16" ); 
        cpds.setUser("root"); 
        cpds.setPassword("root"); 

3.编写C3P0的配置文件
    * C3P0默认去自己去找XML的文件,XML文件名称是(c3p0-config.xml)
    * 把配置文件放在src的目录下

4.编写配置文件内容
    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>
        <default-config>
            <!-- 配置4大参数 -->
            <property name="driverClass">com.mysql.jdbc.Driver</property>
            <property name="jdbcUrl">jdbc:mysql:///day16</property>
            <property name="user">root</property>
            <property name="password">root</property>
        </default-config>

        <named-config name="myoracle">
            <!-- 配置4大参数 -->
            <property name="driverClass">com.mysql.jdbc.Driver</property>
            <property name="jdbcUrl">jdbc:mysql:///day16</property>
            <property name="user">root</property>
            <property name="password">root</property>
        </named-config>
    </c3p0-config>


5.代码
    package cn.itcast.c3p0;

    import java.sql.Connection;
    import java.sql.PreparedStatement;

    import org.junit.Test;

    import com.mchange.v2.c3p0.ComboPooledDataSource;

    import cn.itcast.utils.MyJdbcUtil;

    /**
     * 测试C3P0连接池
     * @author Administrator
     */
    public class C3p0Demo {

        @Test
        public void run1(){
            Connection conn = null;
            PreparedStatement stmt = null;
            try {
                // 现在使用的是C3P0连接池
                ComboPooledDataSource dataSource = new ComboPooledDataSource();
                // 设置4大参数
                dataSource.setDriverClass("com.mysql.jdbc.Driver");
                dataSource.setJdbcUrl("jdbc:mysql:///day16");
                dataSource.setUser("root");
                dataSource.setPassword("root");

                // 可以获取连接
                conn = dataSource.getConnection();
                // 剩下的操作,JDBC的操作
                String sql = "update t_account set money = 300 where username = ?";
                // 预编译SQL
                stmt = conn.prepareStatement(sql);
                // 设置参数
                stmt.setString(1, "美美");
                // 执行
                stmt.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                // 原来:释放资源,conn.close()销毁连接。
                // 现在咱们已经使用了数据库的连接池了 conn.close()方法不是销毁了,是归还连接了。
                MyJdbcUtil.release(conn, stmt);
            }
        }

        /**
         * 读取配置文件
         * 把c3p0-conf.xml文件放在src目录下
         * 程序默认的自动的读取该文件
         */
        @Test
        public void run2(){
            Connection conn = null;
            PreparedStatement stmt = null;
            try {
                // 现在使用的是C3P0连接池
                ComboPooledDataSource dataSource = new ComboPooledDataSource();

                // 可以获取连接
                conn = dataSource.getConnection();
                // 剩下的操作,JDBC的操作
                String sql = "update t_account set money = 600 where username = ?";
                // 预编译SQL
                stmt = conn.prepareStatement(sql);
                // 设置参数
                stmt.setString(1, "美美");
                // 执行
                stmt.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                // 原来:释放资源,conn.close()销毁连接。
                // 现在咱们已经使用了数据库的连接池了 conn.close()方法不是销毁了,是归还连接了。
                MyJdbcUtil.release(conn, stmt);
            }
        }
    }

转载于:https://my.oschina.net/cuncaojin/blog/415784

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值