zoukankan      html  css  js  c++  java
  • C3p0配置

    所需文件:

    1、 c3p0-0.9.1.2.jar http://sourceforge.net/projects/c3p0/

    2、 mysql.jar http://dev.mysql.com/downloads/connector/j/5.0.html

    3、 c3p0-0.9.1.2http://nchc.dl.sourceforge.net/sourceforge/c3p0/c3p0-0.9.1.2.src.zip(可选)

    拥有以上三样东西就可以开始c3p0之旅了,把mysql.jar和c3p0-0.9.1.2.jar放到classpath中就可以开始编写我们的代码了。

    C3p0最简单的使用方式就如其官网下所说的一样,只需提供driverName,url,user,password,程序就可以跑起来。

    第一种获取数据源的方式:

          ComboPooledDataSource cpds = new ComboPooledDataSource();
          String driverClass = "com.mysql.jdbc.Driver";
          String jdbcURL = "jdbc:mysql://localhost:3306/test";
          String user = "root";
          String password = "";
          cpds.setDriverClass(driverClass);
          cpds.setJdbcUrl(jdbcURL);
          cpds.setUser(user);
          cpds.setPassword(password);
          cpds.setMaxStatements(100);
          Connection conn = cpds.getConnection();

    对于这种配置,如果classpath中有c3p0.properties的配置文件,代码中不需要设置连接信息,直接new ComboPooledDataSource(),他会自动读取配置文件中的配置。当然也可以使用c3p0-config.xml文件配置连接信息,使用xml作为配置信息的话,comboPoolDataSource还可以接受一个String参数,这个参数的名称是在c3p0-config.xml文件中配置,这就意味着我们可以在xml文件中可有都多个数据库源连接信息,比如可以是mysql,oracle的。

    ComboPooledDataSource cpds = new ComboPooledDataSource(“test”);
    <named-config name="test">
        <property name="maxStatements">200</property> <propertyname="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
       <property name="user">root</property>
       <property name="password"></property>
    </named-config>
    

    使用配置文件的方式连接时,c3p0默认在classpath根目录读取配置文件,如果想把配置文件放在自己想放得地方只需设置系统属性

    System.setProperties(“ com.mchange.v2.c3p0.cfg.xml”,”config/c3p0-config.xml”);

    程序就在指定的目录下读取该配置文件。

    第二种方式获取数据源,使用数据源工厂类DataSources

    1. DataSource ds = DataSources.unpooledDataSource(jdbcURL, user, password);
    2. DataSource pooledDateSource = DataSources.pooledDataSource(ds);
    3. System.out.println(pooledDateSource.getConnection());  

    第三种获取数据源的方式:

    1. PoolBackedDataSource backedDataSource = new PoolBackedDataSource();
    2. backedDataSource.setConnectionPoolDataSource(new ConnectionPoolDataSource() );
    3. //实现自己的connectionpooldatasource即可

    参数配置:

    除了以上连接数据库必要的参数外,提供以下最基本的参数配置信息才能形成数据库连接池

    1、 acquireIncrement 每次连接增加数量

    2、 initalPoolSize 初始连接数

    3、 maxPoolSize 最大连接数

    4、 maxIdleTime 最大空闲数

    5、 minPoolSize 池中连接最小数量

    Tomcat中配置c3p0的方法:

    1、server.xml中配置

    <GlobalNamingResources>  
        <!-- Editable user database that can also be used by   
            UserDatabaseRealm to authenticate users   
       -->  
       <Resource  name="jdbc/test"  
                                  auth="Container"  
                  description="User database that can be updated and saved"  
          factory="org.apache.naming.factory.BeanFactory"  
                                  driverClass="com.mysql.jdbc.Driver"  
                                  maxPoolSize="4"  
                                  minPoolSize="2"  
                acquireIncrement="1"  
                          user="root"  
                                  password=""  
                                  type="com.mchange.v2.c3p0.ComboPooledDataSource"  
                                  jdbcUrl="jdbc:mysql://localhost:3306/test"  
                       />  
      </GlobalNamingResources>  

    2、 conf目录下Context.xml

    <ResourceLink name="jdbc/test" global="jdbc/test" type="javax.sql.DataSource"/>

    3、 web.xml

    1. <resource-ref>
    2. <res-ref-name>jdbc/ test</res-ref-name>
    3. <res-type>javax.sql.DataSource</res-type>
    4. <res-auth>Container</res-auth>
    5. </resource-ref>

    测试:

    InitialContext context = new InitialContext();   
    return (DataSource) context.lookup("java:comp/env/jdbc/test");  
    

      

  • 相关阅读:
    modal 过程中添加动画
    SVSegmentedControl 标签页
    带输入框的UIAlertView
    Django小结
    译Step-by-Step Guide on Configuring Django-Userena
    使用国内镜像通过pip安装python 包
    pycryto实现AES加密解密算法
    notepad++搜索的一些东西
    [转]notepad++正则表达式替换字符串详解
    [转]Notepad++快捷键
  • 原文地址:https://www.cnblogs.com/101key/p/3736898.html
Copyright © 2011-2022 走看看