美文网首页
1702-MySQL-C3P0连接池实例

1702-MySQL-C3P0连接池实例

作者: Holtto | 来源:发表于2017-07-28 10:42 被阅读41次

1.配置

加载c3p0-0.9.1.2.jar包
设置c3p0-config.xml 配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- 默认配置 -->
  <default-config>
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql:///test</property>
    <property name="user">root</property>
    <property name="password">root</property>
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">20</property>
  </default-config>
  
  <named-config name="oracle"> 
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql:///test</property>
    <property name="user">root</property>
    <property name="password">root</property>
  </named-config> 
  </c3p0-config>

2,Test

package com.it.jdbc.TestDataSoure;

import java.sql.Connection;
import java.sql.PreparedStatement;
import org.junit.Test;
import com.it.jdbc.DataSoure.MyDataSoure;
import com.it.jdbc.utils.C3P0Utils;
import com.it.jdbc.utils.JDBCUtils_V3;

public class TestC3P0 {
    @Test
    public void testAdduser1() {
    Connection conn = null;
    PreparedStatement pstmt = null;
    // 自定义连接池对象
    try {
        // 从连接池获得链接
        conn = C3P0Utils.getConnection();
        String sql = "insert into use1 value(null,?,?)";
        pstmt =conn.prepareStatement(sql);
        pstmt.setString(1, "何一");
        pstmt.setString(2, "李二");
        int rows = pstmt.executeUpdate();
        if (rows > 0) {
            System.out.println("添加成功");
        } else {
            System.out.println("添加失败");
        }
    } catch (Exception e) {
        throw new RuntimeException(e);
    } finally {
        JDBCUtils_V3.release(conn, pstmt, null);
    }
}
}

3.添加工具类C3P0Utils:

package com.it.jdbc.utils;

import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;

public class C3P0Utils {
        private static ComboPooledDataSource dataSoure = new ComboPooledDataSource();//默认配置,classpath目录下
        //ComboPooledDataSource pool = new ComboPooledDataSource("hh")
        //或加载“c3p0-config.xml”的配置元素"hh"
         for(int i=0;i<25;i++){

        private static DataSource getDataSource(){
            return dataSoure;
        }
        public static Connection getConnection(){
            try {
                return dataSoure.getConnection();
            } catch (SQLException e) {
                throw new RuntimeException();
            }
        }
}

凌晨记

相关文章

  • 1702-MySQL-C3P0连接池实例

    1.配置 加载c3p0-0.9.1.2.jar包设置c3p0-config.xml 配置文件: 2,Test 3....

  • 连接池在PyMongo中是如何工作的

    连接池在PyMongo中是如何工作的 每个MongoClient实例在每个MongoDb服务器都有一个内置的连接池...

  • 深入解析Node.js使用MySQL连接池

    这篇文章主要介绍了Node.js使用MySQL连接池的方法,结合具体实例形式分析了nodejs操作mysql连接池...

  • Redis入门 - Jedis

    创建一个maven项目 添加依赖 单实例创建jedis 连接池方式

  • jedis非线程安全

    网上都说jedis实例是非线程安全的,常常通过JedisPool连接池去管理实例,在多线程情况下让每个线程有自己独...

  • Spring配置数据源

    1.Spring配置数据源 1.1 数据源(连接池)的作用 数据源(连接池)是提高程序性能如出现的 事先实例化数据...

  • Spring jdbcTemplate操作数据库

    采用druid作为数据库连接池1、首先,导入jar包 2、实例化DataSource对象(DruidDataSou...

  • MongoDB连接池

    mongodb的MongoClinet是已经内置连接池了的,可以通过poolSize修改配置,至于获取连接实例,只...

  • (创造型设计模式)单例模式

    什么情况下使用(常用场景) 1、实例占用比较多资源,每个实例初始化对性能影响较大。例如数据库连接池、线程池。 2、...

  • URLLIB3 基本用法

    基本用法 Request 您需要一个PoolManager实例来发出请求。 此对象处理连接池和线程安全的所有详细信...

网友评论

      本文标题:1702-MySQL-C3P0连接池实例

      本文链接:https://www.haomeiwen.com/subject/sfyxlxtx.html