首页 > 其他分享 >C3p0连接池的使用

C3p0连接池的使用

时间:2023-01-31 15:47:36浏览次数:42  
标签:xml System c3p0 comboPooledDataSource 使用 连接池 C3p0 ComboPooledDataSource

本文主要讲述c3p0连接池连接数据库的操作步骤

  1. 在libs文件夹下引入c3p0的jar包

  2.在src下引入c3p0的配置文件

  c3p0-config.xml文件内容如下:

<c3p0-config>

  <named-config name="hsp_edu">
<!-- 驱动类 -->
  <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
  <!-- url-->
      <property name="jdbcUrl">jdbc:mysql://127.0.0.1:3306/hspdb02</property>
  <!-- 用户名 -->
          <property name="user">root</property>
          <!-- 密码 -->
      <property name="password">zw20010108</property>
      <!-- 每次增长的连接数-->
    <property name="acquireIncrement">5</property>
    <!-- 初始的连接数 -->
    <property name="initialPoolSize">10</property>
    <!-- 最小连接数 -->
    <property name="minPoolSize">5</property>
   <!-- 最大连接数 -->
    <property name="maxPoolSize">10</property>

    <!-- 可连接的最多的命令对象数 -->
    <property name="maxStatements">5</property> 
    
    <!-- 每个连接对象可连接的最多的命令对象数 -->
    <property name="maxStatementsPerConnection">2</property>
  </named-config>
</c3p0-config>

  3.具体编写连接的代码

  方式1:通过设置set属性

public class c3p0Test {

    @Test
    public void test01() throws Exception{
        // 使用数据库连接池,连接数据库,方式1:通过设置数据连接池的属性
        ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
        comboPooledDataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
        comboPooledDataSource.setJdbcUrl("jdbc:mysql://localhost:3306/hspdb02?useUnicode=true&characterEncoding=UTF-8");
        comboPooledDataSource.setUser("root");
        comboPooledDataSource.setPassword("*****");
        // 设置初始化连接数
        comboPooledDataSource.setInitialPoolSize(20);
        // 设置最小连接数,当连接池还有2个的时候,就开始申请连接数
        comboPooledDataSource.setMinPoolSize(2);
        // 设置最大连接数,最多只能有 40 个连接
        comboPooledDataSource.setMaxPoolSize(40);
        // 当连接数不够用时,一次向数据库申请多少个连接
        comboPooledDataSource.setAcquireIncrement(5);

        long start = System.currentTimeMillis();
        for (int i = 0; i < 50000; i++) {
            Connection connection = comboPooledDataSource.getConnection();
            connection.close();
        }
        long end = System.currentTimeMillis();
        System.out.println("执行时间: " + (int)(end-start));
    }

  方式2:通过读取xml配置文件

public class c3p0Test {

    @Test
    @SuppressWarnings({"all"})
    public void test02() throws Exception{
        // 使用数据库连接池,连接数据库,方式2:通过xml文件
        // 参数是c3p0-config.xml的配置名称: <named-config name="hsp_edu">
        ComboPooledDataSource hsp_edu = new ComboPooledDataSource("hsp_edu");
        long start = System.currentTimeMillis();
        // 执行时间: 1998
        for (int i = 0; i < 500000; i++) {
            Connection connection = hsp_edu.getConnection();
            connection.close();
        }
        long end = System.currentTimeMillis();
        System.out.println("执行时间: " + (int)(end-start));
    }
}

注意,在c3p0中获得数据池的代码

获得属性为空的数据池

ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();

获得读取xml配置文件的数据池

ComboPooledDataSource hsp_edu = new ComboPooledDataSource("hsp_edu");

 

标签:xml,System,c3p0,comboPooledDataSource,使用,连接池,C3p0,ComboPooledDataSource
From: https://www.cnblogs.com/zwgitOne123/p/17079349.html

相关文章

  • 技术汇总:第五章:使用angularjs做首页三级分类
    页面:<scripttype="text/javascript"src="plugins/angularjs/angular.min.js"></script><scripttype="text/javascript"src="js/service/userService.js"></scri......
  • drf安装和简单使用
    昨日回顾#1web应用开发模式 -前后端混合:bbs项目,图书管理----》模板语法---》后端通过模板语法把模板【xx.html】-前后端分离:后端,不需要写前端,只需要提供接口;前......
  • JNDI学习总结(三):tomcat下使用c3p0数据库连接池配置JNDI数据源
    tomcat是apache的,所以它的JNDI数据源默认使用commons组件的DBCP连接池来配置。如果想使用c3p0来配置数据源,就需要修改<Resource>标签里的部分配置选项,操作如下: 1.肯定......
  • Jenkins pipeline 使用agent docker编译构建
    Jenkins使用agentdocker构建pipeline此处用于记录,使用jenkinspipeline构建时,使用docker启动一个agent来构建编译环境。//需要在jenkins的Credentials设置中配置......
  • Axios的使用
    导入axios.js的脚本:<scriptsrc="js/axios.js"></script>对于get方式:直接在url后面添加参数和值<script>axios({method:"get",url:"http://loc......
  • Python3网络爬虫教程6——cookie & session(cookie的属性,保存及模块的使用)
    Python全栈工程师核心面试300问深入解析(2020版)----全文预览Python全栈工程师核心面试300问深入解析(2020版)----欢迎订阅上接:Python3网络爬虫教程5——ProxyHa......
  • 爬虫学习1——request使用
    爬虫什么是爬虫:-通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。爬虫究竟是合法还是违法的?在法律中是不被禁止具有违法风险善意爬虫恶意爬虫......
  • 在elasticsearch中简单的使用script_fields
    目录1、背景2、准备数据2.1mapping2.2插入数据3、案例3.1格式化性别1-男2-女-1-未知如果不存在sex字段,则显示--其余的显示**3.1.1dsl3.1.2java代码3.1.3运行结......
  • 【KAWAKO】speechmetrics-语音方面评价指标库的安装与使用
    目录简介安装将工程以压缩包形式下载到本地把压缩包传到服务器(你想部署的地方)上进行解压用编辑器打开setup.py进行修改在工程目录下进行安装测试简介speechmetrics库提供......
  • 使用 java.time.LocalDateTime
    Java8PostgreSQL14spring-boot-starter-parent2.7.3mybatis-plus-boot-starter3.4.3.4-- 0、序章和数据库的时间类型匹配时,一直使用的是java.util.Date,也未......