MYSQL(连接池的引入)

连接池:
背景:每次执行对db的CRUD操作时,每次都建立数据库的连接,使用完毕之后都要断开连接(connection.close)释放资源。如此倘若有多用户对db频繁的操作,则每次都要建立连接,是非常消耗资源的,也是减低对db访问的效率。
类似于同时一万人去一家饭店去吃饭,根本照顾不过来,老板要疯。
其实在开发的过程中,db会单独放在一台或者多台电脑上,这样的电脑就是数据库服务器。
作用:
为了减轻db的一些压力,我们可以使用数据库连接池技术。

意义:
连接池:存放了多个连接。将来application就可以直接访问连接池,再有连接池去访问db。也就是说,我们用户不需要关心和管理连接,由连接池来管理。如此就达到了提高访问db的效率。

使用c3p0,dbcp等
1 导包
1.1下载
https://sourceforge.net/projects/c3p0/
1.2选择两个jar包
在这里插入图片描述

1.3 加入到工程中,并add build path
在这里插入图片描述

2 配置
2.1连接池的配置
中存放的都是连接,比如最大连接数,最小连接数,这些都要进行配置。这里配置连接池的属性。
2.2 DataSource 数据源
指的是数据的源头(mysql oracle。。。。或者其他的db)的配置,比如用户名,密码,url等
2.3 写配置文件
一般情况下,使用一个xml文件来完成配置。注意:对于c3p0的配置文件,名字必须为c3p0-config.xml。
configuration

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>

<!-- c3p0默认配置   配置多个数据源(数据库的连接) -->
<default-config>

    <!-- 1 先配置DataSource -->
    
    <!-- driverClass url user password -->
    
    <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
	<property name="jdbcUrl">jdbc:mysql://localhost:3306/laosun?serverTimezone=GMT%2B8</property>
	<property name="user">root</property>
	<property name="password">root</property>
	
	<!-- 2 配置pool 举了3个例子,其他的不设置的情况下,都使用默认的设置-->
	<!-- 初始化时 pool中获取的连接数 -->
	<property name="initialPoolSize">5</property>
	<!-- pool保留最大连接数  -->
	<property name="maxPoolSize">50</property>
	
	<!-- 最大空闲时间  多少秒内未使用则将连接丢弃,如果设置0,代表永不丢弃,默认值是0-->
	<property name="maxIdleTime">1000</property>
	
</default-config>

</c3p0-config>

C3p0只是对连接进行了优化而已。

在使用上,和之前的差不多,只不过连接时发生变化:
// 早先获取连接的方式:
// DriverManager.getConnection(url)

// 现在使用pool获取连接:

// 使用默认的构造,会自动加载名为c3p0-config.xml文件,进行配置
ComboPooledDataSource dataSource = new ComboPooledDataSource();
Connection connection = dataSource.getConnection();

// 以下的代码流程都一样。
// connection.prepareStatement(sql);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值