c3p0 连接池

package cn.zhouzhou;

import java.security.interfaces.RSAKey;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;
/*
 * 一、数据库连接池 C3p0 Druid 
 *        1.是啥?
 *        本质上是一个容器(集合) 存放数据库连接的容器 
 *        当系统初始化以后容器被创建 
 *        容器中就会申请一些连接对象 
 *        当用户来访问数据库的时候  从容器中去连接对象
 *        用完之后 归还。
 *
 *二、 怎么用?
 *    1.标准接口 Datasource   java .sql 包下
 *        方法?
 *        1.getConnection();获得连接
 *        2.Connection.close(); 归还
 *    2.接口的实现由 数据库厂商 或者连接池厂商 完成。
 *
 *    3.导包?
 *        1.在SRC 新建lib目录 ,导入两包。c3po 和 mchange-commons-java-0.2.12jar 
 *
 *        【会发现运行错误,主要是没有导入 mysql -connector -java-5.1.37-bin.jar包
 *        添加到lib即可】
 *
 *    4.配置文件?
 *        创建外部文件     c3p0-config.xml 拷贝到SRC目录下
 *        规定!文件名两种方式 1. c3p0-config.xml  2.c3p0.properties
 *
 *        【注意!】xml中的端口后面 输入自己想要连接的数据库 我这里是qy66
 *        <!--  连接参数 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/qy66</property>
        <property name="user">root</property>
        <property name="password">root</property>
 *            
 *    5.创建核心对象?
 *        DataSource ds01=new ComboPooledDataSource();
 *
 *    6.获取连接?
 *        getConnection! 
 */

public class JdbcC3p0Demo {
    public static void main(String[] args) throws SQLException {
                                                        //连接池对象
        DataSource ds01=new ComboPooledDataSource();
                                                        //获取连接
        Connection con01=ds01.getConnection();
                                                        //打印地址 验证是否连接成功!
        System.out.println(con01);
                                                        //查询语句
        String s01="select * from shop;";
                                                        //获得执行语句
        PreparedStatement start01=con01.prepareStatement(s01);
                                                        //查询结果 返回集
        ResultSet re01=start01.executeQuery();
                                                        //获取结果
        while (re01.next()) {
            System.out.println(re01.getInt(1)+"  "+re01.getString(2));
        }
        
    }

}
原文地址:https://www.cnblogs.com/ZXF6/p/10650543.html