数据源C3P0配置

1.导入jar包(dbutil->QueryRunner)

2.C3P0Util工具类

package com.learning.utils;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Util {

    private static DataSource dataSource = new ComboPooledDataSource();

    /*没有用配置文件
    private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
    static{
        try {
            dataSource.setDriverClass( "com.mysql.jdbc.Driver" ); //loads the jdbc driver
            dataSource.setJdbcUrl( "jdbc:mysql://localhost:3306/book" );
            dataSource.setUser("root");
            dataSource.setPassword("root");
        } catch (PropertyVetoException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }*/

    //从数据源中获得连接
    public static Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException("数据库连接失败");
        }
    }

    //释放连接
    public static void release(Connection connection,Statement statement,ResultSet resultSet) {
        if (connection!=null) {
            try {
                //把不用的connection对象放回连接池(实际用了装饰模式)
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            connection=null;
        }
        if (statement!=null) {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            statement=null;
        }
        if (resultSet!=null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            resultSet=null;
        }
    }

}

3.配置文件:c3p0-config.xml(名字不能更改)

<c3p0-config>
    <default-config>

        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/book</property>
        <property name="user">root</property>
        <property name="password">root</property>

        <property name="automaticTestTable">con_test</property>
        <property name="checkoutTimeout">30000</property>
        <property name="idleConnectionTestPeriod">30</property>
        <property name="initialPoolSize">10</property>
        <property name="maxIdleTime">30</property>
        <property name="maxPoolSize">100</property>
        <property name="minPoolSize">10</property>
        <property name="maxStatements">200</property>
        <user-overrides user="test-user">
            <property name="maxPoolSize">10</property>
            <property name="minPoolSize">1</property>
            <property name="maxStatements">0</property>
        </user-overrides>
    </default-config> 

</c3p0-config>
时间: 2024-10-07 18:02:09

数据源C3P0配置的相关文章

Tomcat下使用c3p0配置jndi数据源

下载c3p0包: 下载地址:https://sourceforge.net/projects/c3p0/files/?source=navbar 解压后得到包:c3p0-0.9.2.jar,mchange-commons-java-0.2.11.jar 下载mysql包: 下载地址:http://download.csdn.net/download/u010802461/9579306 解压后得到包:mysql-connector-java-5.1.39-bin.jar(笔者这里没有是因为我将包

JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源

一.C3P0下载 C3P0下载地址:http://sourceforge.net/projects/c3p0/files/?source=navbar 下载完成之后得到一个压缩包. 二.使用C3P0配置JNDI数据源 Tomcat6.x中配置JNDI数据源时默认使用的是Tomcat6.x自带的DBCP连接池,Tomcat6.x使用DBCP连接池配置JNDI数据源如下: 1 <Resource 2 name="oracleDataSource" 3 auth="Conta

关于c3p0配置详细说明

<!-- c3p0连接池配置 --> <property name="driverClass" value="${c3p0.driverClass}"></property> <property name="jdbcUrl" value="${c3p0.url}"></property> <property name="user" value

Spring多数据源的配置和使用

1. 配置多个数据源 最近开发一个数据同步的小功能,需要从A主机的Oracle数据库中把数据同步到B主机的Oracle库中.当然能够用dmp脚本或者SQL脚本是最好,但是对于两边异构的表结构来说,直接导入不可行.然后在需要实时同步的情况下用存储过程也不可行了.写一个数据同步的小程序是个不错的选择.使用框架的封装和连接池是必须的,Spring是首选,这里我们同样需要Spring的多数据源连接配置方式. 其实再进行项目开发的时候,一个项目有可能不止用到一个数据源,为了提高数据库的水平伸缩性,需要对多

c3p0配置详解

数据库连接池C3P0框架是个非常优异的开源jar,高性能的管理着数据源,这里只讨论程序本身负责数据源,不讨论容器管理. 一.实现方式: C3P0有三种方式实现: 1.自己动手写代码,实现数据源 例如:在类路径下配置一个属性文件,config.properties,内容如下: driverClass=xxx jdbcUrl=xxx user=xxx password=xxx ... 然后代码中实现 Properties props = new Properties(); InputStream i

C3P0配置属性的说明

此外C3P0配置属性的说明如下: 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数.Default: 3 --> <property name="acquireIncrement">3</property> <!--定义在从数据库获取新连接失败后重复尝试的次数.Default: 30 --> <property name="acquireRetryAttempts">30</property>

Spring之——c3p0配置详解

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51162560 今天,我们就来详细谈谈Spring中的c3p0配置问题,好了,不耽搁大家的时间,我们直接进入主题,请看下面的具体配置文件信息: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/

开源JDBC连接池DBCP和C3P0配置(转)

现在Tomcat下使用的是公司框架默认的 Apache DBCP连接池.此种连接池虽出自名门Apache基金会.但口碑不是很好,在新版的Hibernate中已经放弃了对DBCP的支持,取而代之的是 C3P0.开始我还对DBCP抱有希望,加上各种参数设置,但均无效.后来换上了C3P0,使用其testConnectionOnCheckout. testConnectionOnCheckin参数配置后果然一剑封喉的解决了问题.(说明:此种办法其实会带来一定的性能损耗)一.DBCP和C3P0连接池常用配

【转】Spring, MyBatis 多数据源的配置和管理

同一个项目有时会涉及到多个数据库,也就是多数据源.多数据源又可以分为两种情况: 1)两个或多个数据库没有相关性,各自独立,其实这种可以作为两个项目来开发.比如在游戏开发中一个数据库是平台数据库,其它还有平台下的游戏对应的数据库: 2)两个或多个数据库是master-slave的关系,比如有mysql搭建一个 master-master,其后又带有多个slave:或者采用MHA搭建的master-slave复制: 目前我所知道的 Spring 多数据源的搭建大概有两种方式,可以根据多数据源的情况进