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