
第二种:利用properties.properties配置文件形式,利用java原生jdbc连接数据库
第三种:利用c3p0-congig.xml配置文件形式,利用c3p0连接数据库
第四种:利用dbcp.properties配置文件形式,利用dbcp连接数据库
第五种:利用mybatis-config.xml配置文件形式,利用MyBatis连接数据库
第六种:利用hibernate.cfg.xml配置文件形式,利用hibernate连接数据库
首先,明确连接、活动连接(连接正被使用)、空闲连接的概念一、创建连接
1、初始化 2、空闲连接低于最小空闲minIdle
二、销毁连接
1、空闲连接数目高于最大空闲 2、活动连接被遗弃
三、回收行为
1、空闲连接回收器(定时执行)2、连接回收器(maxwait后触发)
initialSize 初始化连接数,即连接池启动时池子中的连接数目
maxActive 最大活动连接数,即连接池中可同时连接的最大数目
minIdle 最小空闲连接,连接池中最少的空闲的连接数,
低于这个数量时,意味着连接不够用了,会被创建新的连接
默认为0,该参数越接近maxIdle,性能越好,因为连接的创建和销毁,都是需要消耗资源的;
不宜太大,因为在机器很空闲的时候,也会创建低于minidle个数的连接,类似于jvm参数中的Xmn设置。
maxIdle 最大空闲连接
超过此参数时空闲连接将被释放,如果设置为负数表示不限制
默认为8个,maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数上升超过maxIdle,而造成频繁的连接销毁和创建,类似于jvm参数中的Xmx设置。
maxIdle 最大空闲连接
超过此参数时空闲连接将被释放,如果设置为负数表示不限制
默认为8个,maxIdle不能设置太小,因为假如在高负载的情况下,连接的打开时间比关闭的时间快,会引起连接池中idle的个数上升超过maxIdle,而造成频繁的连接销毁和创建,类似于jvm参数中的Xmx设置
maxWait 请求连接时,最长的等待时间。
单位ms,当没有可用连接时,连接池会等待连接释放,超过该时间限制会抛出异常,如果设置-1表示无限等待(默认为无限)。
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。DBCP(DataBase connection pool),数据库连接池。是 apache 上的一个 java 连接池项目,也是 tomcat 使用的连接池组件。
c3p0与dbcp区别:
dbcp没有自动的去回收空闲连接的功能 c3p0有自动回收空闲连接功能
两者主要是对数据连接的处理方式不同!C3P0提供最大空闲时间,DBCP提供最大连接数。
前者当连接超过最大空闲连接时间时,当前连接就会被断掉。DBCP当连接数超过最大连接数时,所有连接都会被断开。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)