c3p0连接池

来源:互联网 发布:新人网络投稿从哪里 编辑:程序博客网 时间:2024/05/17 05:10

c3p0连接池


一、创建c3p0链接

1、创建配置文件,配置文件的路径必须在classPath路径。配置文件的名称必须是 c3p0-config.xml

2、配置文件实例截图如下:


3、配置文件内容:

<?xml version="1.0" encoding="UTF-8"?><c3p0-config><!-- 配置的根元素 --><!-- 默认配置,如果没有指定则使用这个配置 --><default-config><!-- 连接的超时间时间,以秒 --><property name="checkoutTimeout">3000</property><!-- 空闲检查间隔,检查是否connection没有人用 --><property name="idleConnectionTestPeriod">1000</property><!-- 初始化的池大小 --><property name="initialPoolSize">3</property><!-- 最多有几个连接 --><property name="maxPoolSize">5</property><!-- 最少有几个连接 --><property name="minPoolSize">3</property><property name="autoCommitOnClose">true</property><!-- 如果池中数据连接不够时一次增长多少个 --><property name="acquireIncrement">2</property><!-- connection最大的空闲时间 --><property name="maxIdleTime">1000</property><!-- connection是从java代码到数据库的连接。所有statement都在上面传递sql语句。那到这个connectoin最多可以同时让多少statement在上面传递数据呢? --><property name="maxStatements">50</property><!-- 以下连接信息 --><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl"><![CDATA[jdbc:mysql://127.0.0.1:3306/long1?useUnicode=true&characterEncoding=UTF-8]]></property><property name="user">root</property><property name="password">123456</property></default-config> <named-config name="myconfig"><!-- 以下连接信息 --><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl"><![CDATA[jdbc:mysql://127.0.0.1:3306/long1?useUnicode=true&characterEncoding=UTF-8]]></property><property name="user">root</property><property name="password">123456</property></named-config></c3p0-config> 

4、创建c3p0连接池实例

package com.test.c3p0;import java.sql.Connection;import java.sql.SQLException;import javax.sql.DataSource;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3p0Create {//1、申明一个datasource变量private static DataSource datasource;//2、获取c3p0链接池对象static{//以下实例化comboPooledDataSource默认读取classpath下的c3p0-config.xml//可以接收一个字符串,说明连接c3p0-config.xml中的哪一个命名的连接datasource = new ComboPooledDataSource();}//3、创建DataSource和Connection两个连接池的方法public static DataSource getDataSource(){return datasource;}public static Connection getConnection(){Connection con = null;try {con = datasource.getConnection();} catch (SQLException e) {e.printStackTrace();}return con;}}

二、测试获取连接池,操作数据库

package com.test.test;import java.sql.SQLException;import java.util.List;import org.apache.commons.dbutils.QueryRunner;import org.apache.commons.dbutils.handlers.ArrayListHandler;import org.junit.Test;import com.test.c3p0.C3p0Create;public class C3p0Test {/* * 测试获取C3p0连接池 *  */@Testpublic void query() throws SQLException{//1、申明QueryRunner对象执行SQL语句QueryRunner run = new QueryRunner(C3p0Create.getDataSource());System.out.println(run);System.out.println(C3p0Create.getDataSource());//2、查询语句String sql = "select * from student";//3、执行sql语句List<Object[]> list = run.query(sql, new ArrayListHandler());//4、遍历结果集System.out.println("c3p0链接查询结果:");for(Object[] ls:list){System.out.println("\n");for(Object l:ls){System.out.println(l);}}}}


原创粉丝点击