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));
}
}
}