C3P0连接池配置文档

C3P0连接池配置文档一、导入jar包下载链接 二、配置文件配置文件名称:c3p0-config.xml(固定)配置文件路径:src(类路径)配置文件内容:命名配置<c3p0-config><!–命名的配置–><named-configname="test"><!–连接数据库的4项基本参数-…

大家好,又见面了,我是你们的朋友全栈君。

一、导入jar包

C3P0连接池配置文档

下载链接

 二、配置文件

配置文件名称:c3p0-config.xml (固定)

配置文件路径:src (类路径)

配置文件内容:命名配置

<c3p0-config>
    <!-- 命名的配置 -->
    <named-config name="test">
        <!-- 连接数据库的4项基本参数 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mytest01</property>
        <property name="user">root</property>
        <property name="password">123</property>
        <!-- 如果池中数据连接不够时一次增长多少个 -->
        <property name="acquireIncrement">5</property>
        <!-- 初始化连接数 -->
        <property name="initialPoolSize">5</property>
        <!-- 最小连接数 -->
        <property name="minPoolSize">10</property>
        <!-- 最大连接数 -->
        <property name="maxPoolSize">40</property>
        <!-- JDBC的标准参数,用以控制数据源内加载的PrepareStatements数量 -->
        <property name="maxStatements">200</property>
        <!-- 连接池内单个连接所拥有的最大缓存statements数 -->
        <property name="maxStatementsPerConnection">5</property>
    </named-config>
</c3p0-config>

配置文件内容:默认配置 

<c3p0-config>
    <!-- 默认配置,如果没有指定使用则使用这个配置 -->
    <default-config>
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <property name="jdbcUrl">jdbc:mysql://localhost:3306/mytest01</property>
        <property name="user">root</property>
        <property name="password">123</property>
        <property name="acquireIncrement">50</property>
        <property name="initialPoolSize">100</property>
        <property name="minPoolSize">50</property>
        <property name="maxPoolSize">1000</property>
        <!-- intergalactoApp adopts a different approach to configuring statement caching -->
        <property name="maxStatements">0</property>
        <property name="maxStatementsPerConnection">5</property>
        <!-- he's important, but there's only one of him -->
        <user-overrides user="master-of-the-universe">
            <property name="acquireIncrement">1</property>
            <property name="initialPoolSize">1</property>
            <property name="minPoolSize">1</property>
            <property name="maxPoolSize">5</property>
            <property name="maxStatementsPerConnection">50</property>
        </user-overrides>
    </default-config>
</c3p0-config>

常见配置项:

分类 属性 描述
必须项

user

用户名
password 密码
driverClass

驱动

mysql驱动,com.mysql.jdbc.Driver

jdbcUrl

路径

mysql路径,jdbc:mysql://localhost:3306/数据库

基本配置 acquireIncrement

连接池无空闲连接可用时,一次性创建的新连接数

默认值:3

initialPoolSize

连接池初始化时创建的连接数

默认值:3

maxPoolSize

连接池中拥有的最大连接数

默认值:15

minPoolSize 连接池保持的最小连接数
maxidleTime

连接的最大空闲时间。如果超过这个时间,某个数据库连接还没有被使用,则会断开掉这个连接,如果为0,则永远不会断开连接。

默认值:0

管理连接池的大小和连接的生存时间(扩展) maxConnectionAge

配置连接的生存时间,超过这个时间的连接将由连接池自动断开丢弃掉。当然正在使用的连接不会马上断开,而是等待它 close 再断开。配置为 0 的时候则不会对连接的生存时间进行限制。

默认值:0

maxIdleTimeExcessConnections 这个配置主要时为了减轻连接池的负载,配置不为 0 ,则会将连接池中的连接数量保持到minPoolSize,为 0 则不处理。
配置PreparedStatement缓存(扩展) maxStatements 连接池为数据源缓存的PreparedStatement的总数。由于PreparedStatement属于单个Connection,所有这个数量应该根据应用中平均连接数乘以每个连接的平均PreparedStatement来计算。为 0 的时候不缓存,同时maxStatementsPerConnection的配置无效。
maxStatementsPerConnection 连接池为数据源单个Connection缓存的PreparedStatement数,这个配置比maxStatements更有意义,因为它缓存的服务对象是单个数据连接,如果配置的好,肯定是可以提高性能的。为 0 的时候不缓存。

三、在类中调用

C3P0提供核心工具类:ComboPooledDataSource,如果要使用连接池,必须创建该类的实例对象。

1、new ComboPooledDataSource(“名称”); //使用配置文件“命名配置”

<!-- 命名的配置 -->
<named-config name="test">

2、new ComboPooledDataSource(); //使用配置文件“默认配置”

<!-- 默认配置,如果没有指定使用则使用这个配置 -->
<default-config>

3、编写工具类

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

public class C3P0Utils {

    //默认配置
    private static DataSource dataSource = new ComboPooledDataSource();
    //命名配置
    //private static DataSource dataSource = new ComboPooledDataSource("test");

    public static DataSource getDataSource() {
        return dataSource;
    }

    public static Connection getConnection() {
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131215.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最近使用百度分享的api,引发 了一下问题,微博分享的页面跳转不成功

    最近使用百度分享的api,引发 了一下问题,微博分享的页面跳转不成功1、导致问题的原因有可能是百度分享的服务器有时候无法跳转到微博(个人分析)2、最后我的解决方式,点击事件,让浏览器直接跳转到微博分享的页面window.location.href="http://v.t.sina.com.cn/share/share.php?title=“自定义标题”&amp;pic=“自定义分享图片地址”&amp;searchPic=false"searchP…

    2022年10月8日
    0
  • centOS缺少libcrypto.so.10文件

    centOS缺少libcrypto.so.10文件步骤一点击此链接步骤二,命令安装dnfinstallcompat-openssl10

    2022年6月22日
    54
  • 网络管理员对付DDoS***的绝招分享

    网络管理员对付DDoS***的绝招分享

    2021年8月18日
    53
  • 常用的数据链路层协议_数据链路层和网络层

    常用的数据链路层协议_数据链路层和网络层由于以太网中的所有的主机共享一个通信信道,因此在同一时刻只允许有一台主机发送数据,否则各个主机发送的数据就会相互干扰。站在系统的角度来看,这里各个主机所共享的通信信道就是一种临界资源,这个临界资源同一时刻只允许一台主机使用。……

    2022年10月22日
    0
  • tf.placeholder函数说明

    tf.placeholder函数说明函数形式:tf.placeholder(dtype,shape=None,name=None)参数:dtype:数据类型。常用的是tf.float32,tf.float64等数值类型 shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3],[None,3]表示列是3,行不定) name:名称为什么要用placeh…

    2022年7月26日
    1
  • 备忘录模式实例_iphone语音备忘录无法分享

    备忘录模式实例_iphone语音备忘录无法分享备忘录模式 Motivation动机模式定义实例结构要点总结笔记动机在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯对象之前处于某个点时的状态.如果使用一些共有接口来让其他对象得到对象的状态,便会暴露对象的实现细节.如何实现对象状态的良好保存与回复?但同时又不会因此而破坏对象的封装性模式定义在不破坏封装性的前提下.捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可以将该对象恢复到原先保存的状态实例朴素class Memento{ stri

    2022年8月11日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号