1、下载c3p0-0.9.1.2.jar

下载地址:http://download.csdn.net/detail/chunxiaqiudong5/9661922

2、添加配置文件c3p0-config.xml

3、配置文件内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <c3p0-config>
  3. <!-- This is default config! -->
  4. <default-config>
  5. <property name="initialPoolSize">10</property>
  6. <property name="maxIdleTime">30</property>
  7. <property name="maxPoolSize">100</property>
  8. <property name="minPoolSize">10</property>
  9. <property name="maxStatements">200</property>
  10. </default-config>
  11. <!-- This is my config for mysql-->
  12. <named-config name="mysql">
  13. <property name="driverClass">com.mysql.jdbc.Driver</property>
  14. <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=UTF8</property>
  15. <property name="user">root</property>
  16. <property name="password"></property>
  17. <!-- 初始化连接池中的连接数,取值应在minPoolSize与maxPoolSize之间,默认为3-->
  18. <property name="initialPoolSize">10</property>
  19. <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。默认值: 0 -->
  20. <property name="maxIdleTime">30</property>
  21. <!--连接池中保留的最大连接数。默认值: 15 -->
  22. <property name="maxPoolSize">100</property>
  23. <!-- 连接池中保留的最小连接数,默认为:3-->
  24. <property name="minPoolSize">10</property>
  25. <!--c3p0全局的PreparedStatements缓存的大小。如果maxStatements与maxStatementsPerConnection均为0,则缓存不生效,只要有一个不为0,则语句的缓存就能生效。如果默认值: 0-->
  26. <property name="maxStatements">200</property>
  27. <!-- 当连接池连接耗尽时,客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒。默认: 0 -->
  28. <property name="checkoutTimeout" value="3000"/>
  29. <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。默认值: 3 -->
  30. <property name="acquireIncrement" value="2"/>
  31. <!--定义在从数据库获取新连接失败后重复尝试的次数。默认值: 30 ;小于等于0表示无限次-->
  32. <property name="acquireRetryAttempts" value="0"/>
  33. <!--重新尝试的时间间隔,默认为:1000毫秒-->
  34. <property name="acquireRetryDelay" value="1000" />
  35. <!--关闭连接时,是否提交未提交的事务,默认为false,即关闭连接,回滚未提交的事务 -->
  36. <property name="autoCommitOnClose">false</property>
  37. <!--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试使用。默认值: null -->
  38. <property name="automaticTestTable">Test</property>
  39. <!--如果为false,则获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常,但是数据源仍有效保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。默认: false-->
  40. <property name="breakAfterAcquireFailure">false</property>
  41. <!--每60秒检查所有连接池中的空闲连接。默认值: 0,不检查 -->
  42. <property name="idleConnectionTestPeriod">60</property>
  43. <!--maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。默认值: 0 -->
  44. <property name="maxStatementsPerConnection"></property>
  45. </named-config>
  46. <!-- This is my config for oracle -->
  47. <named-config name="oracle">
  48. <property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
  49. <property name="jdbcUrl">jdbc:oracle:thin:@localhost:1521:orcl</property>
  50. <property name="user">scott</property>
  51. <property name="password">liang</property>
  52. <property name="initialPoolSize">10</property>
  53. <property name="maxIdleTime">30</property>
  54. <property name="maxPoolSize">100</property>
  55. <property name="minPoolSize">10</property>
  56. <property name="maxStatements">200</property>
  57. </named-config>
  58. </c3p0-config>

4、连接池连接类

  1. package com.xxx.utils;
  2. import java.sql.Connection;
  3. import java.sql.SQLException;
  4. import javax.sql.DataSource;
  5. import com.mchange.v2.c3p0.ComboPooledDataSource;
  6. public class JDBCUtil {
  7. private static DataSource dataSource=null;
  8. static{
  9. dataSource=new ComboPooledDataSource("mysql");
  10. }
  11. /**
  12. * 获取数据库连接
  13. * @return
  14. */
  15. public static Connection getConnection(){
  16. Connection conn=null;
  17. try {
  18. conn=dataSource.getConnection();
  19. } catch (SQLException e) {
  20. e.printStackTrace();
  21. }
  22. return conn;
  23. }
  24. /**
  25. * 关闭数据库连接
  26. * @param conn
  27. */
  28. public static void closeConn(Connection conn){
  29. try {
  30. if(conn!=null && conn.isClosed()){
  31. conn.close();
  32. }
  33. } catch (SQLException e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. }

5、测试

  1. package com.xxx.test;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import org.junit.Test;
  7. import com.xxx.utils.JDBCUtil;
  8. public class TestJdbc {
  9. @Test
  10. public void test() {
  11. Connection conn=JDBCUtil.getConnection();
  12. System.out.println(conn);
  13. try {
  14. PreparedStatement stmt=conn.prepareStatement("select * from tb_user");
  15. ResultSet re=stmt.executeQuery();
  16. while(re.next()){
  17. String name=re.getString(2);
  18. System.out.println(name);
  19. }
  20. } catch (SQLException e) {
  21. // TODO Auto-generated catch block
  22. e.printStackTrace();
  23. }
  24. }
  25. }

C3P0连接池的配置与使用的更多相关文章

  1. C3P0连接池详细配置

    C3P0连接池详细配置 转自http://msq.javaeye.com/blog/60387 <c3p0-config> <default-config> <!--当连 ...

  2. Java框架spring 学习笔记(十六):c3p0连接池的配置以及dao使用jdbcTemplate

    连接池可以大大提高数据库的性能和连接速度,将那些已连接的数据库连接存放在一个连接池里,以后别人要连接数据库的时候,将不会重新建立数据库连接,直接从连接池中取出可用的连接,用户使用完毕后,会释放连接重新 ...

  3. Spring之c3p0连接池xml配置和使用举例

    1.导入jar包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.11.jar 2.源码: beans.xml <beans xmlns="http ...

  4. Hibernate的配置中,c3p0连接池相关配置

    一.配置c3p0 1.导入 hibernate-c3po连接池包,Maven地址是:http://mvnrepository.com/artifact/org.hibernate/hibernate- ...

  5. Spring中c3p0连接池的配置 及JdbcTemplate的使用 通过XML配置文件注入各种需要对象的操作 来完成数据库添加Add()方法

    通过配置文件XML方法的配置 可以使用非常简练的Service类 UserService类代码如下: package com.swift; public class UserService { pri ...

  6. C3P0连接池参数配置

    <!--acquireIncrement:链接用完了自动增量3个. --> <property name="acquireIncrement">3</ ...

  7. C3P0连接池属性配置注释

    属性 解释 acquireIncrement 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数 默认为:3 acquireRetryAttempts 定义在从数据库获取新连接失败后重复尝试的次数 ...

  8. c3p0连接池基本配置mysql和oracle

    c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> ...

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

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

随机推荐

  1. svg动画之日出

    效果分析 一个太阳,从底部升起来,天空由黑变蓝.那么要画的东西确定为三个:1.太阳(圆形)2.太阳光芒 3.天空 代码如下 <!--画太阳--> <svg width="6 ...

  2. curl 模拟发起百度地图API post请求

    注:开始做的是get请求,比较简单,然后又查询了一番就做成了post请求,有几个地方特别说明一下: 一,$address,是必须传的,$city可不传: 二,ak跟之前的key一直,需要申请,我的好像 ...

  3. 使用laravel框架与phantomjs实现截屏功能

    在网上看到的关于phantomjs实现截屏功能很多都是与node结合在一起使用,并需要输入命令才能执行.因此我想要实现输入网址即可截屏并输出图片的功能.示例:http://120.77.171.182 ...

  4. Git简介、安装与配置

    老规矩QAQ,先来简单介绍一下Git: Git是一个分布式版本控制系统,可以理解为是一个用于管理代码,控制版本,方便多人合作开发的一款工具. Git:分布式版本控制系统. SVN.CVS:集中式版本控 ...

  5. <Android 应用 之路> MPAndroidChart~BubbleChart(气泡图) and RadarChart(雷达图)

    简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和iOS两种,这里我们暂时 ...

  6. 移动目标在三维GIS中的实现方法

    对于基于ArcGIS Runtime的应用程序,其实现方法比较简单,可以直接更新图形的Geometry属性,即可实现位置的移动: private void AddGraphics() { var gl ...

  7. Ubuntu更换硬盘

    0x00 背景: 目前ubuntu用的是一个80g的硬盘( 一开始没买硬盘,直接拆了一个老老老老的机子来用),系统16.04, 只有一个/分区 ( /dev/sdb1 ) . 新的硬盘是一块256G的 ...

  8. java 通过调用存储过程获取结果集

    一般在java中,数据查询是通过Statement, PreparedStatement获取结果集,今天向大家介绍通过CallableStatement调用存储过程,从而获取结果集.        本 ...

  9. 3 Dockerfile指令详解-FROM&MAINTAINER&RUN

    1.FROM指令 FROM centos #指定centos为基础镜像 2.MAINTAINER 指令 MAINTAINER @QQ.COM #指定维护人等信息,方便维护 3.RUN  命令  #新建 ...

  10. UNIX crontab自动执行脚本

    crontab 是不会加载环境变量的你手动执行可以是因为登录了oracle用户加载了环境变量,你可以在脚本里添加,echo $ORACLE_HOME  echo $ORACLE_SID 等等试试,看看 ...