单例模式实现C3P0数据库连接池

连接池(内含dbcp c3p0)jar包 此含dbcp c3p0 连接池的jar 文件,下载后可直接引入项目使用,已经验证 立即下载
public class DBUtilOfC3P0 {

    private ComboPooledDataSource dataSource;
    private static DBUtilOfC3P0 instance = null;

    private DBUtilOfC3P0(String filePath) throws IOException,
            PropertyVetoException {
        String dataType = null; // 数据库类型1 Oracle 2 SqlServer 3 MySql
        String dataname = null; // 数据库名
        String URL = null; // 数据库URL
        String port = null; // 端口号
        String username = null;
        String password = null;
        String DBUrl = null;
        String driverClassName = null;

        INI.load(filePath);// 读取数据库配置文件(ini文件)

        dataType = (String) INI.getValue("dataSource", "DataType");
        URL = (String) INI.getValue("dataSource", "URL");
        port = (String) INI.getValue("dataSource", "PORT");
        username = (String) INI.getValue("dataSource", "UserName");
        password = (String) INI.getValue("dataSource", "PassWord");
        dataname = (String) INI.getValue("dataSource", "DataName");

        if ("1".equalsIgnoreCase(dataType)) {
            driverClassName = "oracle.jdbc.driver.OracleDriver";
            DBUrl = "jdbc:oracle:thin:@" + URL + ":" + port + ":" + dataname;
        } else if ("2".equalsIgnoreCase(dataType)) {
            driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
            DBUrl = "jdbc:sqlserver://" + URL + ":" + "; DatabaseName="
                    + dataname;
        } else if ("3".equalsIgnoreCase(dataType)) {
            driverClassName = "com.mysql.jdbc.Driver";
            DBUrl = "jdbc:mysql://" + URL + ":" + port + "/" + dataname;
        }
        dataSource = new ComboPooledDataSource(); // 设置jdbc连接信息
        dataSource.setUser(username);
        dataSource.setPassword(password);
        dataSource.setJdbcUrl(DBUrl);
        dataSource.setDriverClass(driverClassName);
        // 设置连接池
        dataSource.setInitialPoolSize(30);
        dataSource.setMaxPoolSize(100);
        dataSource.setMinPoolSize(10);
    }

    // 为了保证单例性,必须使用同步关键字
    public synchronized static DBUtilOfC3P0 getInstance(String filePath)
            throws IOException, PropertyVetoException {
        if (instance == null) {
            instance = new DBUtilOfC3P0(filePath);
        }
        return instance;
    }

    public Connection getConnection() throws SQLException {
        Connection conn = null;
        if (dataSource != null) {
            conn = dataSource.getConnection();
        }
        return conn;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Long begin = System.currentTimeMillis();
        Connection conn = null;
        String filePath = "D:/workspace/myreport/WebRoot/WEB-INF/dataSource.ini";
        try {
            DBUtilOfC3P0 dBUtilOfC3P0 = DBUtilOfC3P0.getInstance(filePath);
            for (int i = 0; i < 10000; i++) {
                conn = dBUtilOfC3P0.getConnection();
                if (conn != null) {
                    conn.close();
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        Long end = System.currentTimeMillis();
        System.out.println("连接数据库所需要的时 间:" + (end - begin));
        // 连接数据库所需要的时 间:828
    }

}


Java使用C3P0连接MySQL数据库查询 Java连接MySQL数据库查询。 使用C3P0连接池查询数据库,用log4j做日志。 立即下载

相关推荐

C#中使用OpenCV的常用函数

c# opencv 常见操作

大黄鸭在发光的专栏 1079

c3p0数据连接池结合单例的应用

package com.servletjsp.utils; import javax.sql.DataSource; import org.apache.commons.dbutils.QueryRunner; import com.mchange.v2.c3p0.ComboPooledDataSource; /**1.使用DBUtils工具连接数据库进行数据的相关操作 * 2.DBUtils来自apchede 子项目,是一个对jdbc操作数据库语句的封装,简化了jdbc复杂的操作语句流程,全程.

背包客—的博客 330

基于角谱传播的MATLAB仿真:从相位恢复看自由空间光传播

本文详细介绍了基于角谱传播理论的MATLAB仿真方法,用于模拟自由空间光传播过程。通过傅里叶光学原理,将光场分解为频谱并应用传播相位滤波器,实现了从纯相位物体到可观测衍射图样的仿真。文章结合具体代码,演示了如何利用角谱法进行相位恢复,为计算成像和生物医学检测等领域的研究提供了实用的仿真工具和思路。

weixin_29055699的博客 282

Java使用C3P0连接池详解

什么是C3P0连接池: 开源的JDBC连接池,C3P0连接池是在程序操作数据库之前预先根据配置文件创建一定数量的连接,当线程需要时直接取走,缩短了创建连接的时间,当使用完毕后,释放连接后放回连接池,以此类推,如果连接池中的连接使用完后,程序会根据配置文件配置的数据再次创建一批,使用完后放回连接池,并不是真正的关闭连接。 C3P0和DHCP对比: DHCP没有自动回收空闲连接的功能 C3P0有自动回收空闲连接功能 C3P0连接池的重要性: 在Java开发中连接数据库使用到的场景很多,一般我们在项目

fly1157932256的博客 6330

【算法】—前缀和与差分详解

前缀和指一个数组的某下标之前的所有数组元素的和(即数列的前n项求和),前缀和是一种重要的预处理,能够降低算法的时间复杂度,可以快速地求出某一段的和,对于处理区间之间的问题是往往十分高效相比较其他算法而言,前缀和更像是一种解题的技巧,一种优化方式输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r 对于每个询问,输出原序列中从第 l 个数到第 r 个数的和5 32 1 3 6 41 21 32 4123453610。

DAY I 的成长之路 6022

详解vit_base_patch16_224

ViT-Base模型的核心思想是将输入图像划分为多个小块(patches),并使用Transformer架构来处理这些小块。具体来说,ViT-Base使用16x16像素的patch大小,输入图像的尺寸为224x224像素,这意味着每张图像将被划分为49个patch(22416×22416=14×14=19616224​×16224​=14×14=196个patch)。ViT-Base(ViT-B/16)通过将图像处理任务转化为序列处理任务。

具身机器人和通用AI 3227

【Java 进阶篇】JDBC 数据库连接池 C3P0 详解

在了解 C3P0 数据库连接池之前,让我们先明确什么是数据库连接池。数据库连接池是一个维护数据库连接的池子,它预先创建一定数量的数据库连接,并将这些连接保存在池中,以便应用程序在需要时可以从池中获取连接,而不是每次都创建新的连接。数据库连接是一种昂贵的资源,创建和销毁连接的开销很大。通过使用连接池,可以避免频繁地创建和销毁连接,提高了数据库访问的性能和效率。连接池还可以控制连接的数量,防止连接数过多导致数据库性能下降,同时还可以管理连接的状态、超时和异常处理。

繁依Fanyi的博客 8779

如何利用air780e与stm32c8c6进行通信实现给手机发送一条英文短信的功能?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1237

【Java 初级】Java 连接池 C3P0

C3P0是一个开源的Java连接池库,用于管理数据库连接。它提供了一种可靠的连接池实现,用于优化数据库连接的创建和销毁,提高应用程序的性能和可伸缩性。

激流丶的博客 2267

如何在飞腾平台上安装Ubuntu操作系统

注意: 若主板上配置的是NVME硬盘,在进行内核配置时,需要将内核的NEME驱动勾选上,否则移植内核时,无法找到文件系统,进不去操作系统。可以通过rufus软件将镜像做到U盘中,本次使用版本为Rufus 3.9.124 ,其他版本也可以。不要下载live版本的,没有准备网络环境,是一个头疼的事情,笔者暂时没有实现网络安装。将U盘接到主板usb口上,接上串口,显示器,,必需串口有打印才可以安装。可以通过dd命令,将iso安装到U盘。安装的是最小系统,缺少很多命令,需要联网更新,或则更换飞腾专用内核。

技术联盟 2645

ADS基础教程16 - 存档和导入(workspace、cell、view)

选择workspace_Archive目录作为保存workspace归档的目录,点击打开进行目录选择,点击Finish保存目录。,选择cell_Archive目录作为保存cell归档的目录,点击打开进行目录选择,点击Finish保存目录。,选择view_Archive目录作为保存view归档的目录,点击打开进行目录选择,点击Finish保存目录。(2)在弹框中,可以选择点击Select将参考的条目添加进来,然后点击Next…(2)在弹框中,可以选择点击Select将参考的条目添加进来,然后点击Next…

XZ_ZC的博客 3703

Java 数据库系列教程--C3P0详解

1、C3P0基本概念。 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。如果不知道什么是线程池,可以百度一下,我理解的呢,就是一个大水池,里面有很多鱼,每条鱼对应一个数据库连接,你拿到一条鱼你就获得一个连接,当然,这鱼不能吃,你摸完了还要放回去的。这例子有点变态哈哈,能理解就行。

jcpp9527的博客 7514

【银河麒麟V10】【桌面】【服务器】系统启动问题

1、如果之前运行好好的,重启后系统报错,一般80%是因为fstab的问题,回想下之前有没有添加过外接存储,修改过/etc/fstab,如果是的话一般是因为存储异常(比如网络存储无法连接,本地存储路径变化)导致系统开机自检失败,导致无法正常启动; 处理方式:进入单用户(单用户进入的几种方式上面有专门文章介绍),修改/etc/fstab,将新增的内容暂时注释掉,然后重启系统,能正常进入系统后再分析失败原因。 ...

桂安俊@KylinOS 3万+

JSP中c3p0,servlet,三层架构和MVC设计模式的综合应用

上方脑图给出了思路和步骤,现在补全代码部分: 1.c3p0的配置文件: <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- 我们希望在配置文件中,出现链接的参数信息 --> <default-config> <!-- name 属性定义 链接参数的 key 标签的内容 代表值--> <property name="driverCl.

weixin_47655184的博客 340

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

c3p0连接池

1. 依赖jar包: c3p0-0.9.1.2.jar 2.配置连接池 import java.sql.Connection; import java.sql.SQLException; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0 { public static f...

a7639915的博客 128

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

使用c3p0数据库连接池示例代码 Java

先导入maven jar包 public final class DBConnectServer { //使用单利模式创建数据库连接池 private static DBConnectServer instance; private static ComboPooledDataSource dataSource; private DBConnectServer...

pmrogrammer的博客 984

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

经典的单例模式c3p0来控制数据库连接池

1.新建ConnectionManager.javapackage com.c3p0.datapools; //数据库连接池 单例模式 import java.sql.Connection; import java.sql.SQLException; impor

分享技术,享受生活 6078

C3P0连接池使用小结

转自:http://blog.youkuaiyun.com/bhq2010/article/details/9219947 C3P0在最近的demo中也用了(我用的是0.9.2.1版本),因为单例很难应付大量并发。 【引用请注明出处http://blog.youkuaiyun.com/bhq2010/article/details/9219947】 用法详见文档:http://www.mchange.c

梁江江 797

java mysql c3p0连接池,使用c3p0数据库连接池示例代码 Java

先导入maven jar包public final class DBConnectServer {//使用单利模式创建数据库连接池private static DBConnectServer instance;private static ComboPooledDataSource dataSource;private DBConnectServer() throws SQLException, ...

weixin_28995873的博客 204

数据库连接池DBCP和C3P0

直接代码: public class DBCPUtils { private static DBCPUtils dbcputils=null; private BasicDataSource bds=null; private DataSourceConnectionFactory dscf=null; private DBCPUtils(){ if

生而为人我很抱歉 1157

Spring中管理数据库连接池

Spring中管理数据库连接池 1. 导包: <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency> <!--mysql驱动包--> <dependency> <groupId&

qq_43570650的博客 270

java 数据库连接池 c3p0 使用及参数详解,支持重连

//数据库连接池  单例模式 import java.sql.Connection; import java.sql.SQLException; import com.mchange.v2.c3p0.ComboPooledDataSource; import com.mchange.v2.c3p0.DataSources; public final class Connect

Mr.Xiao的专栏 1743

C3P0

C3P0源码及jar包华为网盘 //数据库连接池 单例模式 import java.sql.Connection; import java.sql.SQLException; import com.mchange.v2.c3p0.ComboPooledDataSource; import com.mchange.v2.c3p0.DataSources; public final clas

Tech My Life 684

c3p0数据库连接池工具类

名:DB DBClassName=com.mysql.jdbc.Driver DBUrl=jdbc:mysql://localhost:3306/synuatp DBroot=root DBpassword=sa

拥有必珍惜 736

C3P0 + apache的dbutils 实现公用的增删改查功能

首先导入C3P0、mysql连接、apache的dbutils 的jar包 jar包获取地址:http://www.mvnrepository.com/进入搜索关键字即可下载相应jar包 文档树构建 c3p0配置文件c3p0-config.xml配置 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;c3p0-config&gt; ...

bright_light12345的博客 357
上一篇: 单例模式实现DBCP数据库连接池,并从ini文件中读取数据库连接池配置参数
下一篇: 一个读写ini文件属性的例子
墨桐
博客等级 码龄16年 7粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值