zoukankan      html  css  js  c++  java
  • tomcat下c3p0连接池配置问题

    一.首先如果要使用这个连接池,就需要导入c3p0-0.9.2-pre1.jar架包和支持架包mchange-commons-0.2.jar,

    我这里测试使用的是msql数据库 当然也需要导入mysql连接架包mysql-connector-java-5.1.26-bin.jar

    下载地址:https://pan.baidu.com/s/1GXBVvLcATClOvZyF6k1z6g

    二.我这里的配置文件结构如下

    这里的c3p0-0.9.2-pre是主要架包 c3p0-config.xml必须在src目录下 才可以检测到

    有三种方式使用c3p0这个jar

    首先看一下配置文件c3p0-config.xml中的信息

    <?xml version="1.0" encoding="UTF-8"?>
    <c3p0-config>    
        <!-- This is default config! -->  
        <!-- 默认配置 -->  
        <default-config>    
            <!-- 初始化时 c3p0-config连接池的初始化连接数 -->
            <property name="initialPoolSize">10</property>
            <!-- 连接空闲等待时间 超过这个时间 自动断开连接 -->
            <property name="maxIdleTime">30</property>
            <!-- 连接池最大连接数 -->
            <property name="maxPoolSize">100</property>  
             <!-- 连接池最小连接数 -->  
            <property name="minPoolSize">10</property>
             <!-- 最多可以得到多少个statement 也就是说可以创建多少个可以执行sql语句的对象 -->  
            <property name="maxStatements">200</property>  
            
            <property name="driverClass">com.mysql.jdbc.Driver</property>
            <!-- 连接url路径 -->    
            <property name="jdbcUrl">jdbc:mysql://localhost:3306/mysql1</property>   
            <!-- 连接用户的用户账户 -->  
            <property name="user">root</property>
            <!-- 连接密码 -->     
            <property name="password">zhousong</property>   
        </default-config> 
        
         <named-config name="mysql">
             <!-- 连接mysql数据库需要的参数 -->
             <!-- 驱动类 --> 
            <property name="driverClass">com.mysql.jdbc.Driver</property>
            <!-- 连接url路径 -->    
            <property name="jdbcUrl">jdbc:mysql://localhost:3306/mysql1</property>   
            <!-- 连接用户的用户账户 -->  
            <property name="user">root</property>
            <!-- 连接密码 -->     
            <property name="password">zhousong</property> 
            
            <!-- 初始化连接时 的连接数 -->
            <property name="initialPoolSize">10</property> 
            
             
            <!-- 初始化时 c3p0-config连接池的初始化连接数 -->
            <property name="initialPoolSize">10</property>
            
            <!-- 连接空闲等待时间 超过这个时间 自动断开连接 -->
            <property name="maxIdleTime">30</property>
            
            <!-- 每次增加10 当连接不够时 -->
            <property name="acquireIncrement">10</property>
            
            <!-- 连接池最大连接数 -->
            <property name="maxPoolSize">100</property>  
             <!-- 连接池最小连接数 -->
               
            <property name="minPoolSize">10</property>
            
             <!-- 最多可以得到多少个statement 也就是说可以创建多少个可以执行sql语句的对象 -->  
            <property name="maxStatements">200</property>  
              
         </named-config>  
    </c3p0-config>

    然后测试三种使用方式

    package C3p0Demo;
    
    
    import java.beans.PropertyVetoException;
    import java.sql.Connection;
    import java.sql.SQLException;
    
    import org.junit.Test;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    
    public class Demo1 {
        /*
         * C3p0的代码配置方式
         * 通过代码进行四大参数组件的配置
         * 
         */
        @Test
        public void C3p0DemoTest() throws PropertyVetoException, SQLException{
            //C3p0类的使用
            ComboPooledDataSource dataSource =new ComboPooledDataSource();
            
            /*
             * 使用四大参数组件 连接数据库
             */
            dataSource.setDriverClass("com.mysql.jdbc.Driver");
            
            dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mysql1");
            
            dataSource.setUser("root");
            
            dataSource.setPassword("zhousong");
            
            //池配置
            dataSource.setInitialPoolSize(10);//初始化连接池时 初始化;连接数为10
            dataSource.setAcquireIncrement(5);  //设置连接池增量连接数
            dataSource.setMaxPoolSize(20);  //连接池最大连接数
            dataSource.setMinPoolSize(5);   //设置连接池最小连接数
            
            Connection connection =dataSource.getConnection();
            
            //使用的是动态代理机制
            System.out.println(connection);
            connection.close();
        }
        /*
         * 使用默认配置文件 进行连接池子配置
         * 默认配置
         */
        @Test
        public void C3p0DemeTest2() throws SQLException{
            ComboPooledDataSource dataSource =new ComboPooledDataSource();
            
            Connection connection =dataSource.getConnection();
            System.out.println(connection);
            connection.close();
    
        }
        
        /*
         * 使用配置文件 进行连接池子配置
         * 命令配置方式
         */
        @Test
        public void C3p0DemeTest3() throws SQLException{
            ComboPooledDataSource dataSource =new ComboPooledDataSource("mysql");
            
            Connection connection =dataSource.getConnection();
            System.out.println(connection);
            connection.close();
    
        }
    }

    分别都通过 这样就可以使用这个架包了

  • 相关阅读:
    mongoDB BI 分析利器
    如何定位 Node.js 的内存泄漏
    如何对MySQL数据库中的数据进行实时同步
    [有奖活动进行中]阿里数据库专家曾文旌为你解决数据库那些事
    如何实现Docker应用的自定义弹性伸缩
    vue methods 中方法的相互调用
    vue 实现部分路由组件缓存
    SSH框架之一详解maven搭建多模块项目
    GitHub Pages 搭建流程-基于jekyll-bootstrap
    ExtJs 4 中的MVC应用架构
  • 原文地址:https://www.cnblogs.com/ad-zhou/p/9104821.html
Copyright © 2011-2022 走看看