zoukankan      html  css  js  c++  java
  • C3P0数据库连接池技术 学习笔记

    数据库连接池
       1. 概念:其实就是一个容器(集合),存放数据库连接的容器。
          当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。
    
       2. 好处:
          1. 节约资源
          2. 用户访问高效
    
       3. 实现:
          1. 标准接口:DataSource   javax.sql包下的
             1. 方法:
                * 获取连接:getConnection()
                * 归还连接:Connection.close()。如果连接对象Connection是从连接池中获取的,那么调用Connection.close()方法,则不会再关闭连接了。而是归还连接
    
          2. 一般我们不去实现它,有数据库厂商来实现
             1. C3P0:数据库连接池技术
             2. Druid:数据库连接池实现技术,由阿里巴巴提供的

    C3P0:数据库连接池技术
       * 步骤:
          1. 导入jar包 (两个) c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar ,
             * 不要忘记导入数据库驱动jar包
          2. 定义配置文件:
             * 名称: c3p0.properties 或者 c3p0-config.xml
             * 路径:直接将文件放在src目录下即可。
    
          3. 创建核心对象 数据库连接池对象 ComboPooledDataSource
          4. 获取连接: getConnection
     *代码:
        //1.创建数据库连接池对象
           DataSource ds  = new ComboPooledDataSource();
           //2. 获取连接对象
           Connection conn = ds.getConnection();

    项目结构如下:

    我用的开发工具为:IDEA。还需要导入相应的包。


    使用C3P0数据库连接池技术需要在该包的src文件下添加一个名为:" c3p0-config.xml " 的配置文件。配置文件的名字不可变。

    配置文件内容如下:可根据需要修改部分。

    <c3p0-config>
      <!-- 使用默认的配置读取连接池对象 -->
      <default-config>
      	<!--  连接参数 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/jdbc_exercise</property> <!-- jdbc_exercise是我连接的数据库的数据库名,需修改-->
        <property name="user">root</property>   <!-- root 为数据库登录名 ,需修改-->
        <property name="password">123456</property>  <!-- password 为数据库登录密码,需修改 -->
        
        <!-- 连接池参数 -->
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">10</property>
        <property name="checkoutTimeout">3000</property>
      </default-config>
    
      <named-config name="otherc3p0"> 
        <!--  连接参数 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/day25</property>
        <property name="user">root</property>
        <property name="password">root</property>
        
        <!-- 连接池参数 -->
        <property name="initialPoolSize">5</property>
        <property name="maxPoolSize">8</property>
        <property name="checkoutTimeout">1000</property>
      </named-config>
    </c3p0-config>

    测试代码:用于测试C3P0连接池技术的连接,并未写出对数据库的增删查改等代码。

    package C3P0;//测试C3P0连接池的连接性
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    import javax.sql.DataSource;
    import java.sql.Connection;
    import java.sql.SQLException;
    
    public class C3P0Demo {
        public static void main(String[] args) throws SQLException {
            DataSource ds = new ComboPooledDataSource();
            Connection conn = ds.getConnection();
            System.out.println(conn);
            System.out.println("Hello World!");
        }
    }
    
  • 相关阅读:
    Java Native Method
    SQL语句优化
    Ibatis的环境搭建以及遇到的问题解决
    Java 构建器
    SpringMVC自定义视图 Excel视图和PDF视图
    java 枚举的常见使用方法
    mysql 根据某些字段之和排序
    MFC The Screen Flickers When The Image Zoomed
    How To Debug Qmake Pro File
    Gcc And MakeFile Level1
  • 原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451032.html
Copyright © 2011-2022 走看看