<?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. js相关数组迭代方法图解

  2. org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 32; 元素类型为 "key" 的内容必须匹配 "(column)*"

    报错:部分错误信息,主要查看CauseBy Caused by: org.hibernate.InvalidMappingException: Unable to read XML at org.hi ...

  3. Sqli-labs less 1

    Less-1 我们可以在http://127.0.0.1/sqllib/Less-5/?id=1后面直接添加一个 ' ,来看一下效果: 从上述错误当中,我们可以看到提交到sql中的1'在经过sql语句 ...

  4. 04、Unity_声音管理器

    1.分享一个Unity中用于管理声音的声音管理器,适合于中小型项目,大项目就算了. 2.借鉴了很多的源码,最后修改完成,吸取百家之长,改为自己所用,哈哈. 3.源码奉上: /* * * 开发时间:20 ...

  5. Xamarin中VS无法连接Mac系统的解决办法

    Xamarin中VS无法连接Mac系统的解决办法 按照以下步骤排查:(1)确认Mac系统中安装Xamarin.iOS开发必备的组件,如Mono.Xamarin.iOS.(2)将Windows和Mac下 ...

  6. POJ 2348 Euclid's Game 博弈论

    http://poj.org/problem?id=2348 顺便说,必应翻译真的好用,比谷歌翻译好用100倍. 很难判断这道题的具体博弈类型. 有两种写法,一种是找规律,一种是推理得到关系后循环(或 ...

  7. List the Books

    描述 Jim is fond of reading books, and he has so many books that sometimes it's hard for him to manage ...

  8. python实现简单的梯度下降法

    代码如下: # 梯度下降法模拟 import numpy as np import matplotlib.pyplot as plt plot_x = np.linspace(-1,6,141) # ...

  9. #Html学习积累#分割线中间添加文字

    类似效果: ————————————xxxxx———————————————————— <!DOCTYPE HTML> <html> <head> <meta ...

  10. NHibernate 之持久化类、拦截器 (第二篇)

    一.持久化类中成员标量的要求 作为被NHibernate使用的持久化类,必须满足以下几点要求: 1.声明读写属性 在NHibernate的使用中,持久化类的成员变量必须声明对应的属性,NHiberna ...