数据库连接池的使用(C3P0实现多数据源的数据库连接池)

本文介绍了如何使用C3P0作为数据库连接池来实现多数据源配置。通过ConcurrentHashMap存储不同的数据源,每个数据源的连接信息包括数据库管理系统(dbms)、主机(host)、端口(port)以及驱动(driver)。详细阐述了配置步骤和关键代码片段。
摘要由CSDN通过智能技术生成
    要说数据库连接池,我们先来谈谈对象池的概念。所谓对象池,就是把频繁使用的对象缓存起来,可以重复使用。首先:一个对象的生存周期包括:对象的创建、对象的使用、对象的销毁。
    1、对于对象的创建,我们知道,Java对象是通过构造函数来创建的,在这一过程中,该构造函数链中的所有构造函数也都会被自动调用。另外,默认情况下,调用类的构造函数时,Java会把变量初始化成确定的值:所有的对象被设置成null,整数变量(byte、short、int、long)设置成0,float和double变量设置成0.0,逻辑值设置成false。所以用new关键字来新建一个对象的时间开销是很大的;
    2、对于对象的销毁,Java语言的一个优势,就是Java程序员勿需再像C/C++程序员那样,显式地释放对象,而由称为垃圾收集器(Garbage Collector)的自动内存管理系统,定时或在内存凸现出不足时,自动回收垃圾对象所占的内存。凡事有利总也有弊,这虽然为Java程序设计者提供了极大的方便,但同时它也带来了较大的性能开销。这种开销包括两方面,首先是对象管理开销,GC为了能够正确释放对象,它必须监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等。其次,在GC开始回收“垃圾”对象时,系统会暂停应用程序的执行,而独自占用CPU。
    3、基于以上的考虑,如果是一个需要频繁被使用的对象(并且该对象在重复使用前,无需任何处理,属于没有状态的对象如String),将极大影响程序的性能,所以引入了对象池技术ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值