首先,c3p0是一个连接池插件

需要jar包:

  

使用手动配置:

/**
* 手动配置使用c3p0
* @throws PropertyVetoException
* @throws SQLException
*/
@Test
public void fun1() throws PropertyVetoException, SQLException{
//创建连接池对象
ComboPooledDataSource dataSource=new ComboPooledDataSource(); //对池进行四大参数的配置
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/demo");
dataSource.setUser("guodaxia");
dataSource.setPassword("961012gz"); //池配置
dataSource.setAcquireIncrement(5);
dataSource.setInitialPoolSize(20);
dataSource.setMinPoolSize(2);
dataSource.setMaxPoolSize(50); Connection con=dataSource.getConnection();
System.out.println(con);
con.close();
}

c3p0允许通过xml配置,类似于hibernate.cfg.xml一样:

c3p0配置要求:
文件名称:必须叫c3p0-config.xml
文件位置:必须在src下

c3p0-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<c3p0-config>
<!-- 默认连接配置 -->
<default-config>
<!-- 连接四大参数配置 -->
<property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/demo</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">guodaxia</property>
<property name="password">961012gz</property>
<!-- 池参数配置 -->
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
</default-config> <!-- 专门连接oracle的,模拟 -->
<named-config name="oracle-config"> <!-- 注意,这里是named-config而不是name-config,否则取读不到配置信息 -->
<!-- 连接四大参数配置 -->
<property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/demo</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">guodaxia</property>
<property name="password">961012gz</property>
<!-- 池参数配置 -->
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">10</property>
</named-config>
</c3p0-config>

使用配置文件中的默认配置:

/**
* 配置文件的默认配置
* @throws SQLException
*/
@Test
public void fun2() throws SQLException{
/**
* 在创建连接池对象的时候,对象就会自动加载配置文件,不需要我们指定
*/
ComboPooledDataSource dataSource=new ComboPooledDataSource();
Connection con=dataSource.getConnection();
System.out.println(con);
con.close();
}

配置文件中可以配置多歌配置信息,可以手动选择:

使用指定配置:

/**
* 使用命名配置
* @throws SQLException
*/
@Test
public void fun3() throws SQLException{
/**
* 构造器的参数指定了命名配置元素的鄂明成
* <name-config name="oracle-config">
*/
ComboPooledDataSource dataSource=new ComboPooledDataSource("oracle-config");
Connection con=dataSource.getConnection();
System.out.println(con);
con.close();
}

c3p0之后的jdbc连接池:

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class JdbcUtils {
/*
* 配置文件的恶魔人配置!要求你必须给出c3p0-config。xnl!
*/
private static ComboPooledDataSource dataSource=new ComboPooledDataSource(); /**
* 使用连接池返回一个连接对象
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException{
return dataSource.getConnection();
} /**
* 返回连接池对象
* @return
*/
public static DataSource getDataSource(){
return dataSource;
}
}

简单使用c3p0连接池的更多相关文章

  1. 网络协议 finally{ return问题 注入问题 jdbc注册驱动问题 PreparedStatement 连接池目的 1.2.1DBCP连接池 C3P0连接池 MYSQL两种方式进行实物管理 JDBC事务 DBUtils事务 ThreadLocal 事务特性 并发访问 隔离级别

    1.1.1 API详解:注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 原因有2个: >导致驱动被注册2 ...

  2. JNDI配置c3p0连接池

    JNDI是什么呢? 就是java命名和文件夹接口.是SUN公司提供的一种标准的Java命名系统接口. 不好理解?简单说呢.他就是一个资源,放在tomcat里面的一个资源,今天我们就把数据库连接池放到t ...

  3. Java开发笔记(一百五十)C3P0连接池的用法

    JDBC既制定统一标准兼容了多种数据库,又利用预报告堵上了SQL注入漏洞,照理说已经很完善了,可是人算不如天算,它在性能方面不尽如人意.问题出在数据库连接的管理上,按照正常流程,每次操作完数据库,都要 ...

  4. 自定义一个简单的JDBC连接池

    一.什么是JDBC连接池? 在传统的JDBC连接中,每次获得一个Connection连接都需要加载通过一些繁杂的代码去获取,例如以下代码: public static Connection getCo ...

  5. 【转】【很全很新】C3P0 连接池和 DBUtils 配合事务使用总结

    [转]https://blog.csdn.net/guozhaohui628/article/details/84793028 很久没用原生连接池,最近想写个小功能,结果发现很多地方不太懂,然后网上搜 ...

  6. 初始C3P0连接池

    C3P0连接池只需要一个jar包: 其中我们可以看到有三个jar包: 属于C3P0的jar包只有一个,另外两个是测试时使用的JDBC驱动:一个是mysql的,一个是oracle的: 可以看到在src下 ...

  7. c3p0连接池]

    <c3p0-config> <!-- 默认配置 --> <default-config> <property name="jdbcUrl" ...

  8. c3p0连接池获得的Connection执行close方法后是否真的销毁Connection对象?

    问题描述: jfinal做的api系统中,在正常调用接口一段时间后,突然再调用接口的时候,该请求无响应api系统后台也无错误信息 (就是刚开始接口调用是正常的,突然就无响应了) 于是啊,就开始找错误. ...

  9. C3P0连接池在hibernate和spring中的配置

    首先为什么要使用连接池及为什么要选择C3P0连接池,这里就不多说了,目前C3P0连接池还是比较方便.比较稳定的连接池,能与spring.hibernate等开源框架进行整合. 一.hibernate中 ...

随机推荐

  1. 如何简单的实现一个tab页title的动画效果

    首先我们来看看实现的效果 tab上的title沉下去的效果 先来看看布局 <?xml version="1.0" encoding="utf-8"?> ...

  2. 文件大小转换(b,kb,M,GB/TB)

    //转换单位 setupSize(1111111111111); function setupSize($fileSize) { $size = sprintf("%u", $fi ...

  3. python第三方库地址

    python第三方库的地址: requests: http://docs.python-requests.org/zh_CN/latest/user/quickstart.html beautifus ...

  4. table中tr的display属性在火狐中显示不正常,IE中显示正常

    最近在作项目的时候碰到一个问题,就是需要AJAX来交互显示<tr> </tr> 标签内的东西,按照常理,对于某一单元行需要显示时,使用:display:block属性,不需要显 ...

  5. Paint的setPathEffect(PathEffect effect)、以及Path的具体使用,收益多多!

    Paint的setPathEffect(PathEffect effect).以及Path的具体使用,收益多多! 在这首先申明一下介绍只是为了学习使用 内容都来自:http://www.cnblogs ...

  6. poj1066(叉乘的简单应用)

    做完了才发现,好像没有人和我的做法一样的,不过我怎么都觉得我的做法还是挺容易想的. 我的做法是: 把周围的方框按顺时针编号,然后对于每一条边,如果点出现在边的一侧,则把另一侧所有的点加1,这样最后统计 ...

  7. MATLAB循环结构:break+continue+嵌套

    break语句:终止当前循环,继续执行循环语句的下一语句: continue语句:跳过循环体的后面语句,开始下一个循环: 例:求[100,200]之间第一个能被21整除的整数 :200 %循环语句 ) ...

  8. C++模板类[初步]

    /* * stacktp.h * * Created on: 2014年3月29日 * Author: */ /** * - 模板类的概念,与使用 * -# export template <c ...

  9. JAVA面试题——JAVA编程题1(2015.07.22)

    实现代码很简单:   package com.xiaozan.shopping;   import java.util.Arrays;   public class ShoppingCart {    ...

  10. 物理cpu和逻辑cpu

    1 物理cpu 插槽里面实际插入的cpu的个数. 通过不重复的physical id可以获取实际的物理cpu的个数. 2 逻辑cpu cat /proc/info processor 1 proces ...