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

<c3p0-config>

<!-- 这是默认配置信息 -->

<default-config name="hoobey">

<!-- 连接四大参数配置 -->

<property name="jdbcUrl">jdbc:mysql://localhost:3306/mydb1</property>

<property name="driverClass">com.mysql.jdbc.Driver</property>

<property name="user">root</property>

<property name="password">123456</property>

<!-- 池参数配置 -->

<property name="acquireIncrement">3</property>

<property name="initialPoolSize">10</property>

<property name="minPoolSize">2</property>

<property name="maxPoolSize">10</property>

</default-config>

</c3p0-config>

package cn.itcast.demo1;

import java.beans.PropertyVetoException;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import org.junit.Test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**

* c3p0

* @author cxf

*

*/

public class 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://localhost:3306/mydb1");

dataSource.setUser("root");

dataSource.setPassword("123456");

// 池配置

dataSource.setAcquireIncrement(5);

dataSource.setInitialPoolSize(20);

dataSource.setMinPoolSize(2);

dataSource.setMaxPoolSize(50);

Connection con = dataSource.getConnection();

String sql = "select * from products";

Statement stmt = con.createStatement();

ResultSet rs = (ResultSet) stmt.executeQuery(sql);

int count = rs.getMetaData().getColumnCount();

while(rs.next()){

for(int i=1; i<=count; i++){

System.out.println(rs.getString(i));

if(i<count){

System.out.println(",");

}

}

}

rs.close();

stmt.close();

con.close();

}

/**

* 配置文件的默认配置

* @throws SQLException

*/

@Test

public void fun2() throws SQLException{

/**

* 在创建连接池对象时,这个对象就会自动加载配置文件!不用我们来指定

*/

ComboPooledDataSource dataSource  = new ComboPooledDataSource();

Connection con = dataSource.getConnection();

System.out.println(con);

String sql = "select * from products";

Statement stmt = con.createStatement();

ResultSet rs = (ResultSet) stmt.executeQuery(sql);

int count = rs.getMetaData().getColumnCount();

while(rs.next()){

for(int i=1; i<=count; i++){

System.out.println(rs.getString(i));

if(i<count){

System.out.println(",");

}

}

}

rs.close();

stmt.close();

con.close();

con.close();

}

/**

* 使用命名配置信息

* @throws SQLException

*/

@Test

public void fun3() throws SQLException{

/**

* 构造器的参数指定命名配置元素的名称!

* <named-config name="oracle-config">

*/

ComboPooledDataSource dataSource  = new ComboPooledDataSource("hoobey");

Connection con = dataSource.getConnection();

System.out.println(con.getClass().getName());

con.close();

}

}

package cn.itcast.demo1;

import java.beans.PropertyVetoException;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import org.apache.commons.dbcp.BasicDataSource;

import org.junit.Test;

/**

* c3p0

* @author cxf

*

*/

public class dbcp {

/**

* 代码配置

* @throws PropertyVetoException

* @throws SQLException

*/

@Test

/*

* dbcp连接池 commons-dbcp-1.4.jar commons-pool-1.3.jar

*/

public void fun1() throws PropertyVetoException, SQLException {

// 创建连接池对象

BasicDataSource dataSource = new BasicDataSource();

// 对池进行四大参数的配置

dataSource.setDriverClassName("com.mysql.jdbc.Driver");

dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");

dataSource.setUsername("root");

dataSource.setPassword("123456");

// 池配置

dataSource.setMaxActive(20);

dataSource.setMinIdle(3);

dataSource.setMaxWait(200);

Connection con = dataSource.getConnection();

System.out.println(con.getClass().getName());

String sql = "select * from products";

Statement stmt = con.createStatement();

ResultSet rs = (ResultSet) stmt.executeQuery(sql);

int count = rs.getMetaData().getColumnCount();

while(rs.next()){

for(int i=1; i<=count; i++){

System.out.println(rs.getString(i));

if(i<count){

System.out.println(",");

}

}

}

rs.close();

stmt.close();

con.close();

}

}

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.xml!!!

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;

}

}

-------------------------------------------------------------------------------------------

public void fun4() throws SQLException{
  System.out.println("---------最简单的获取连接对象的方法---------------------------------------");
  Connection con = JdbcUtil.getConnection();
  String sql = "select * from products";
  Statement stmt = con.createStatement();
  ResultSet rs = (ResultSet) stmt.executeQuery(sql);
  int count = rs.getMetaData().getColumnCount();
  while(rs.next()){
   for(int i=1; i<=count; i++){
    System.out.println(rs.getString(i));
    if(i<count){
     System.out.println(",");
    }
   }
  }
  rs.close();
  stmt.close();
  con.close();
  con.close();
 }

数据库连接dbcp$c3p0的更多相关文章

  1. 数据库连接JDBC和数据库连接池C3P0自定义的java封装类

    数据库连接JDBC和数据库连接池C3P0自定义的java封装类 使用以下的包装类都需要自己有JDBC的驱动jar包: 如 mysql-connector-java-5.1.26-bin.jar(5.1 ...

  2. 数据库连接池 c3p0 druid

    druid 数据库连接池 c3p0 使用C3P0数据源时需要依赖 mchange-commons-java-0.2.3.4.jar包.缺少该jar包则会报错!

  3. 数据库连接池——C3P0&Druid(快速入门)

    数据库连接池--C3P0&Druid (一) 数据库连接池 每一个事物都有其存在的意义,在初学jdbc的时候,我们建立数据库连接对象后,会对其进行释放,但是数据库连接的建立和关闭是非常消耗资源 ...

  4. 数据库连接池c3p0和dbcp

    现在常用的开源数据连接池主要有c3p0.dbcp和proxool三种,其中: hibernate开发组推荐使用c3p0; spring开发组推荐使用dbcp(dbcp连接池有weblogic连接池同样 ...

  5. 数据库连接池c3p0学习

    这里只记录c3p0的数据源,不会涉及到其它方面和别的数据库连接池的对比 配置文件主要的实现方式有三种: 1.手写代码去加载一个配置文件 创建一个config.properties文件如下: drive ...

  6. [数据库连接池二]Java数据库连接池--C3P0和JDNI.

    前言:上一篇文章中讲了DBCP的用法以及实现原理, 这一篇再来说下C3P0和JDNI的用法. 1.1.C3P0数据源 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规 ...

  7. 数据库连接池 c3p0 demo 代码和分析

    import java.sql.Connection; import java.sql.SQLException; import java.beans.PropertyVetoException; i ...

  8. 数据库连接池 C3p0

    数据库连接池 C3po 1 定义 本质上是个容器(集合) 存放数据库的连接容器(connection 对象) ,当系统初始化以后 容器就会创建 容器中就会申请一些连接对象 ,当用户来访问数据库的时候 ...

  9. java学习笔记41(数据库连接池 C3p0连接池)

    在之前的学习中,我们发现,我们需要频繁的创建连接对象,用完之后还需要在关闭资源,因为这些连接对象都是占资源的,但是又不得不创建,比较繁琐,为了解决这种情况,Java出现了数据库连接池: 数据库连接池的 ...

  10. JAVA数据库连接池C3p0 以及阿里Druid提供的连接池

    一:连接池的定义 本质上就是个容器(集合) 存放数据库连接的容器,当系统初始化后,容器被创建,容器中就会申请一些连接对象,当用户来访问数据库的时候,从容器中取连接对象,用户用完之后,归还. 二:常用的 ...

随机推荐

  1. Spring学习的切入点

    spring是个顶级的框架,这话没毛病.很多人想把它征服,想去阅读它的源码,弄懂它的设计思想,从中学到精粹. 但是很多次打开后,看到庞大的体系结构,就懵逼了,不知从何入手. 我在这里总结下学习spri ...

  2. 【BZOJ 2744】 2744: [HEOI2012]朋友圈 (最大团,二分图匹配,构图)

    2744: [HEOI2012]朋友圈 Description 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他 ...

  3. 【分块】【暴力】XVII Open Cup named after E.V. Pankratiev Grand Prix of Moscow Workshops, Sunday, April 23, 2017 Problem I. Rage Minimum Query

    1000w的数组,一开始都是2^31-1,然后经过5*10^7次随机位置的随机修改,问你每次的全局最小值. 有效的随机修改的期望次数很少,只有当修改到的位置恰好是当前最小值的位置时才需要扫一下更新最小 ...

  4. [Luogu1843]奶牛晒衣服

    题目大意: 你要晒n件衣服,第i件衣服有w[i]滴水, 每件衣服每秒钟会自然风干a滴水,将这件衣服放入烘干机中每秒钟会烘干a+b滴水. 一秒钟不可以拆开,问晒干所有的衣服至少要多少时间? 思路: 二分 ...

  5. 找出最小元素 Exercise07_09

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:找出最小元素 * */ public class Exercise07_0 ...

  6. 详解React的生命周期

    React生命周期 之前自己在学习React的时候,只是简单的理解了生命周期有这么一些,但是不知道大概的一个流程是怎么样的.那天在面试的时候,问到了.自己也有点懵,也没提前看,不过还是答上来了一些,这 ...

  7. storm性能优化

    Storm 性能优化 目录 场景假设 调优步骤和方法 Storm 的部分特性 Storm 并行度 Storm 消息机制 Storm UI 解析 性能优化 场景假设 在介绍 Storm 的性能调优方法之 ...

  8. [Bug]Object reference not set to an instance of an object.

    引言 今天在客户这儿,由一个问题导致,需求的变化,不得不修改代码,在记录日志中出现该问题. 原因 通过id查找相关信息,没有判断是否为null,集合是否有数据. Object reference no ...

  9. js中propertyIsEnumerable()方法使用介绍

    javascript的propertyIsEnumerable()方法使用介绍 概述 propertyIsEnumerable()用来检测属性是否属于某个对象的,如果检测到了,返回true,否则fal ...

  10. 初始加载时edittext不自动获取焦点的方法

    在做一个搜索功能时,刚进入界面,edittext直接自动获取焦点,这显然不是我想要的. 那么问题来了:如何关闭EditText自动获取焦点的? 尝试了好几个方法,在Java代码添加focus控制,在x ...