<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
		<meta name="apple-mobile-web-app-capable" content="yes">
		<meta name="apple-mobile-web-app-status-bar-style" content="black">
		<meta name="format-detection" content="telephone=no">
		<title>什么是连接池？为什么需要连接池呢？-思洋互动</title>
		<meta name="keywords" content="什么是连接池？为什么需要连接池呢？">
	    <meta name="description" content="1.为什么需要连接池呢？Java程序操作数据库，必须获得一个连接Connection，实际操作中，我们要先获得连接，使用完成后还有关闭连接。这两个操作都比较耗时。思考：那...">
		<meta name="renderer" content="webkit" />
		<link href="/css/main.css?v=39" rel="stylesheet">
		<link href="/css/base.css?v=39" rel="stylesheet">
        <link href="/css/swiper-3.4.2.min.css" rel="stylesheet">
		<script type="text/javascript" src="/js/jquery.min.js"></script>
        <script type="text/javascript" src="/js/swiper-3.4.2.min.js"></script>
		<!--[if lt IE 9]>
            <script src="/js/html5shiv.min.js"></script>
            <script src="/js/respond.min.js"></script>
            <link href="/css/ie.css" rel="stylesheet">
        <![endif]-->
		<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?8914d517c927d8e794148d05e387fb17";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
<link rel="canonical" href="https://www.ciya.cn/article/881.html">
		</head>
	<body class="no-banner">
		<div class="container">
			<div class="header">
	<div class="header-top">
		<div class="w1700">
			<a href="https://www.ciya.cn/"><img src="/images/logo.png?v=2"></a>
		</div>
	</div>
	<div class="header_b">
		<header class="slide">
			<div id="navToggle" class="menu-handler">
				<span class="burger burger-1 trans"></span>
				<span class="burger burger-2 trans-fast"></span>
				<span class="burger burger-3 trans"></span>
			</div>
		</header>
	</div>
	<nav class="slide">
		<div class="w1700">
			<a class="index" href="/"></a>
			<ul>
								<li><a href="https://www.ciya.cn/case/12.html">项目案例</a></li>
								<li><a href="https://www.ciya.cn/website/9.html">网站建设</a></li>
								<li><a href="https://www.ciya.cn/marketing/10.html">网络营销</a></li>
								<li><a href="https://www.ciya.cn/media/11.html">新媒体</a></li>
								<li class="active"><a href="https://www.ciya.cn/news/16.html">动态</a></li>
								<li><a href="https://www.ciya.cn/about/8.html">关于</a></li>
								<li><a href="https://www.ciya.cn/contact/13.html">联系</a></li>
							</ul>
		</div>
	</nav>
</div>            <div class="content slide">
                <div class="position bgf1">
                    <div class="w1700">
                        <a href="https://www.ciya.cn/">首页 ></a>
                        <a href="https://www.ciya.cn/news/16.html">动态 ></a>
                        <a href="https://www.ciya.cn/news/35.html">网站知识</a>
                    </div>
                </div>
                <div class="case-type">
                    <div class="w1700">
                                                <a href="https://www.ciya.cn/news/32.html" >品牌合作</a>
                                                <a href="https://www.ciya.cn/news/31.html" >新闻动态</a>
                                                <a href="https://www.ciya.cn/news/38.html" >网站建设</a>
                                                <a href="https://www.ciya.cn/news/41.html" >网站制作</a>
                                                <a href="https://www.ciya.cn/news/40.html" >网站设计</a>
                                                <a href="https://www.ciya.cn/news/42.html" >运营推广</a>
                                                <a href="https://www.ciya.cn/news/35.html"  class="active">网站知识</a>
                                            </div>
                </div>
                <div class="padding-tb80">
                    <div class="w1700 clear">
                        <div class="fl xwxq-l">
                            <div class="noselettext">
                                <div class="xwxq-title mg-bt60 wow slideUp">
                                    <h1 class="mg-bt35">什么是连接池？为什么需要连接池呢？</h1>
                                    <span>时间：2022-07-11</span>
                                </div>
                                <div class="edit2 mg-bt60 wow slideUp">
                                                                        <p><span style="font-size: 18px;"><strong>1.为什么需要连接池呢？</strong></span></p><p>  Java程序操作数据库，必须获得一个连接Connection，实际操作中，我们要先获得连接，使用完成后还有关闭连接。这两个操作都比较耗时。</p><p><br/></p><p>思考：那有没有什么比较方便不耗时的方法呢？当我们要用的时候只需要调用一下就ok,用完了再还回去。这样岂不是免去了【获得、关闭连接】节省了很多时间？那应该怎么实现呢？</p><p><br/></p><p>答疑：连接池，就是用于解决这一问题而被需要的。连接池，将我们所需要的连接，放入池子里，形成公共连接。且该池子中的连接被调用时，有且只能被一个人使用，当该连接被归还时，即可恢复为公共连接，被别人重新调用。</p><p><br/></p><p><span style="font-size: 18px;"><strong>2.什么是连接池</strong></span></p><p>一组连接组成的一个池子(集合)，称为连接池。</p><p>接池是创建和管理一个连接的缓冲池的技术，这些连接准备好被任何需要它们的线程使用。<br/></p><p><br/></p><p>在描述连接池的工作原理前，先思考思考几个问题？？？</p><p>问题1：连接池中的连接一开始有几个？</p><p>问题2：如果新添加了连接，一次能添加几个？</p><p>问题3：如果需要的连接比池子中的连接多，该怎么办？</p><p>问题4：是否可以无限添加连接？</p><p>问题5：如果都归还连接呢？</p><p><br/></p><p><span style="font-size: 16px;">3. 问题解答：</span></p><p>问题1：一开始连接池会进行系统初始化，根据系统配置建立，并创建几个连接对象【初始化】</p><p>问题2：添加的新连接不能超过最大连接数</p><p>问题3：自动创建即可。</p><p><br/></p><p>  1.如果初始化只有3个连接，但我现在需要第4个连接，该怎么办呢?</p><p>  2.第4个连接我们可以自动创建，但是随着我们的需求越来越多，自动创建连接可以无限创建吗？</p><p>  3.不能，因为连接池中有最大连接数，最大连接数限制了连接的个数，超过了最大连接数就会报错，栈内存溢出异常</p><p><br/></p><p>问题4：不能，有最大连接数。最大连接数限制了连接的个数，不能超过最大连接数，不然会报栈内存溢出异常。</p><p>问题5：因为有最小连接数，所有不能让池子全部空闲，占内存。所以池子中总是有这么几个连接【最小连接数】在等待着被人连接使用</p><p><br/></p><p><span style="font-size: 18px;"><strong>3. 连接池的工作原理</strong></span></p><p> 下面我们用图片的形式，模拟一下连接池的工作原理</p><p style="text-align: center;"><img src="/upload/image/20220711/1657506133632095.png" title="1657506133632095.png" alt="image.png" width="605" height="320" style="width: 605px; height: 320px;"/></p><p><br/></p><p><span style="font-size: 18px;"><strong>3.1详解连接池的工作原理</strong></span></p><p>3.1.1连接池的创建：</p><p>   当用户需要访问数据库时，连接池会根据系统初始化，根据系统配置建立。并创建几个连接对象，等待着被需要的用户连接</p><p><br/></p><p><span style="font-size: 18px;"><strong>3.1.2 连接池的管理</strong></span></p><p>1.用户根据需要去连接池获取一个独享连接进行复用；</p><p><br/></p><p>2.这时连接池接到用户的请求，会从连接池中随意移出一个空闲的连接给用户。如果没有空闲连接，且尚未达到连接的最大连接数，就是 创建一个新的连接，在将新的连接交给用户。如果没有空闲连接，且也已经达到最大连接数的限制，则程序会先让其等待一段时间，如果超过了等待的时间还没有其他空闲的连接，那么程序则会报栈内存溢出异常。</p><p><br/></p><p>3.当用户获得连接使用完毕后，会将其连接归还给连接池 。在归还连接时，会对其连接池中的连接进行判断，看是否达到最大空闲数，如果已经达到看最大空闲数，已经没有空闲的位置了，那么就会直接将该对象丢弃。如果归还连接时，连接池中的连接小于最小空闲数，则会创建新的对象，来保证连接数大于等于最小空闲数【最小连接数】</p><p><br/></p><p>4.其实，在我们归还连接后，对于 大于最小空闲和小于最大空闲时，会根据连接的最小空闲时间，做空闲连接检测，如果该连接空闲的时间超过了最小空闲时间，则会将其移除，清除清理掉。【大于最小空闲连接：就是在最小连接是基础上，多出来的那个或几个连接；】【 小于最大空闲连接：就是如最大空闲数是5个，现在却只有4个空闲，则现在的空闲数就小于了最大空闲数，反过来说也就是大于最小空闲数。因为，最大连接数 = 最小连接数+最大空闲数，而最小连接数其实又是最小空闲数即：最大连接数=最小空闲数+最大空闲数，不管那边发生改变都将会造成影响，天平的两端都将不会平衡】</p><p><br/></p><p><span style="font-size: 18px;"><strong>3.1.3 连接池的关闭</strong></span></p><p>   当应用程序关闭时，会关闭连接池中的所有连接，释放连接池中相关的资源。但也不是将所有的连接全部关闭，因为如果将其全部关闭了不仅仅占内存，而且如果下一次有用户要进行复用连接的时候，还降低了效率。所有连接池有一个最小连接数，当关闭程序时，连接池会留下几个连接继续处于空闲等待状态，等待着被其他用户连接，其他连接则会被关闭释放资源，连接池就只剩下最小连接数个连接。</p><p><br/></p><p><span style="font-size: 18px;"><strong>3.1.4相关词组详解</strong></span></p><p>最大连接数：意思就是在这个连接池中最大可以存放多少个连接</p><p>最小连接数：意思就是在这个连接池中至少要存在多少个连接，一般系统进行初始化时创建的连接的个数可视为最小连接数</p><p>最大空闲数：意思就是在最大连接数中除去最小连接数的个数，还剩下多少个连接，可视为可以最大，最多能空闲下来的连接数</p><p><br/></p><p><span style="font-size: 18px;"><strong>4.连接池的规范</strong></span></p><p><span style="font-size: 18px;"><strong>4.1JavaEE规范规定：</strong></span></p><p>  JavaEE规范规定：连接池必须实现javax.sql.DataSource 接口</p><p>  接口中规定方法：getConnection()</p><p style="text-align: center;"><img src="/upload/image/20220711/1657506161876594.png" title="1657506161876594.png" alt="image.png"/></p><p><br/></p><p><span style="font-size: 18px;"><strong>4.2常见的第三方连接池</strong></span></p><p>  druid: 德鲁伊，alibaba提供，稳定，性能好等。</p><p>  DBCP: Apache提供，tomcat内置。</p><p>  C3P0 : hibernate 框架底层使用。（等效框架MyBatis）</p><p><br/></p>                                </div>
                            </div>
                                                        <div class="xwxq-bot bgf1 wow slideUp">
                                <div class="xwxq-fy clear">
                                    <a class="fl" href="/article/882.html"><i></i>如何提高自己的Java编程技能?</a>
                                    <a class="fr" href="/article/880.html"><i></i>手机网站与微网站的区别</a>
                                </div>
                                <a class="fhlb" href="#"></a>
                            </div>
                        </div>
                        <div class="fr xwxq-r">
                            <div class="xwxq-tj-page bgf1 mg-bt40 wow slideUp">
                                <div class="xwxq-tj-warp bgfff">
                                    <div class="tjxw-title mg-bt30">
                                        <h3>最新案例</h3><span>LATEST CASES</span>
                                    </div>
                                    <div class="zxal">
                                        <div class="swiper-container">
                                            <div class="swiper-wrapper">
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/409.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214103120.jpg" alt="广州呼吸研究院"/></div>
                                                            <p>广州呼吸研究院</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/433.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214102846.jpg" alt="融创集团"/></div>
                                                            <p>融创集团</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/268.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214102923.jpg" alt="粤海集团"/></div>
                                                            <p>粤海集团</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/414.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211216/20211216115258.jpg" alt="恒大足球学校"/></div>
                                                            <p>恒大足球学校</p>
                                                        </a>
                                                    </div>
                                                                                                        <div class="imgscale li swiper-slide">
                                                        <a href="https://www.ciya.cn/article/477.html">
                                                            <div class="img100 mg-bt20"><img src="/upload/20211214/20211214102958.jpg" alt="侨鑫集团"/></div>
                                                            <p>侨鑫集团</p>
                                                        </a>
                                                    </div>
                                                                                                </div>
                                        </div>
                                        <div class="zxalDot text-center swiperDot"></div>
                                    </div>
                                </div>
                            </div>
                            <div class="xwxq-tj-page bgf1 mg-bt40 wow slideUp">
                                <div class="xwxq-tj-warp bgfff">
                                    <div class="tjxw-title tjxw-title-line mg-bt20">
                                        <h3>热点新闻</h3><span>TOP NEWS</span>
                                    </div>
                                    <ul class="rdxw">
                                                                                <li><a href="https://www.ciya.cn/article/3559.html">1  java heap space(解决方法)</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/1222.html">2  如何在网站后台上传附件</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/1643.html">3  如何在网站后台上传PDF文件</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/1142.html">4  什么是流？</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/3543.html">5  java swing还有人用吗(swing为什么会被淘汰)</a></li>
                                                                            </ul>
                                </div>
                            </div>
                            <div class="xwxq-tj-page bgf1 wow slideUp">
                                <div class="xwxq-tj-warp bgfff">
                                    <div class="tjxw-title tjxw-title-line mg-bt20">
                                        <h3>最新动态</h3><span>NEWS</span>
                                    </div>
                                    <ul class="rdxw">
                                                                                <li><a href="https://www.ciya.cn/article/7318.html">1  商务网站的维护与更新：持续优化，保持竞争力</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7317.html">2  商务网站的社交媒体营销：扩大品牌影响力，吸引更多潜在客户</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7316.html">3  商务网站的广告投放：增加收益，提高知名度</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7315.html">4  商务网站的在线客户服务：提供优质客服，提升用户满意度</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7314.html">5  商务网站的支付系统集成：安全、便捷的交易方式</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7313.html">6  商务网站搜索引擎优化（SEO）：提升排名，增加流量</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7312.html">7  商务网站响应式设计：实现多设备兼容，提升用户体验</a></li>
                                                                                <li><a href="https://www.ciya.cn/article/7311.html">8  商务网站开发：选择合适的编程语言和技术栈</a></li>
                                                                            </ul>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
                <div class="footerbox">
	<div class="footer">
		<div class="w1700">
			<ul>
				<li>
					<span class="fttitle">思洋 · 广州总部</span>
					<div>
						<p>广州天河区珠江新城富力盈力大厦北塔2706</p>
						<p>020-38013166（网站咨询专线）</p>
					</div>
					<p>400-001-5281 （售后服务热线）</p>
				</li>
				<li>
					<span class="fttitle">思洋 · 深圳</span>
					<div>
						<p>深圳市坂田十二橡树庄园F1-7栋</p>
						<p>Site/ http://www.szciya.com </p>
						<p>E-mail/ itciya@vip.163.com</p>
					</div>
					<p>品牌服务专线：400-001-5281 </p>
				</li>
				<li>
					<span class="fttitle">思洋 · 湖南</span>
					<div>
						<p>长沙市天心区芙蓉中路三段398号新时空大厦5楼</p>
						<p>联系电话/ (+86 0731)88282200</p>
					</div>
					<p>品牌服务专线/ 400-966-8830</p>
				</li>
				<li class="lastli">
					<p class="mt10">旗下运营网站：</p>
					<div class="mt10">
						<img src="/images/ftlogo2.png">
						<img src="/images/gogo.png">
						<img src="/images/ftlogo3.png">
						<img src="/images/ftlogo4.png">
						<img src="/images/ftlogo11.png">
					</div>
				</li>
			</ul>
		</div>
	</div>
	<div class="ft_bottom">
		<div class="w1700">
			<p class="cop">Copyright © 2016 广州思洋文化传播有限公司，保留所有权利。 <a href="https://beian.miit.gov.cn/" target="_blank">粤ICP备09033321号</a>
			</p>
		</div>
	</div>
</div>
<div class="le-box active">
	<div class="t show780">
		<a href="tel:13570966600">
			<img src="/images/ml9-1.png?v=1" alt="" class="sow i">
			<img src="/images/ml9-1.png?v=1" alt="" class="iove i">
		</a>
	</div>
	<div class="t">
		<img src="/images/ml1-1.png?v=1" alt="" class="sow i">
		<img src="/images/ml1-1.png?v=1" alt="" class="iove i">
		<div class="iov">
			<div class="img">
				<img src="/images/qr.jpg" alt="与项目经理交流">
			</div>
			<div class="h">扫描二维码<br>与项目经理交流</div>
		</div>
	</div>
	<div class="t">
		<img src="/images/ml2-1.png?v=1" alt="" class="sow i">
		<img src="/images/ml2-1.png?v=1" alt="" class="iove i">
		<div class="iov">
			<div class="img">
				<img src="/images/qq001.jpg" alt="">
			</div>
			<div class="h">扫描二维码<br>与项目经理交流</div>
		</div>
	</div>
	<!--<div class="t">-->
		<!--<a href="http://wpa.qq.com/msgrd?v=3&amp;uin=1607245872&amp;site=ciya.cn&amp;menu=yes" target="_blank">-->
			<!--<img src="/images/ml2-1.png?v=1" alt="" class="sow i">-->
			<!--<img src="/images/ml2-1.png?v=1" alt="" class="iove i">-->
		<!--</a>-->
	<!--</div>-->
	<div class="t hide780">
		<a href="https://affim.baidu.com/unique_510425/chat?siteId=19536215&userId=510425&siteToken=8914d517c927d8e794148d05e387fb17" target="_blank">
			<img src="/images/ml3-1.png?v=1" alt="" class="sow i">
			<img src="/images/ml3-1.png?v=1" alt="" class="iove i">
		</a>
	</div>
</div>
<script>
	$(window).scroll(function(){
//		if($(window).scrollTop()>200){
//			$(".le-box").addClass("active");
//		}else{
//			$(".le-box").removeClass("active");
//		}
	})
</script>
<div class="wap_fx">
	<a href="tel:13570966600" class="phone"></a>
	<a href="mqqwpa://im/chat?chat_type=wpa&uin=1607245872&version=1&src_type=web&web_src=ciya.cn" target="_blank" class="qq"></a>
	<a href="javascript:;" class="wx2"></a>
	<a class="kef986" style="background:rgba(0,0,0,.6) url(/images/ml3-1.png?v=1) no-repeat center;background-size: cover;border-radius: 4px;" href="https://p.qiao.baidu.com/cps/chat?siteId=18513940&userId=510425&siteToken=e5e1bde478969b43bf99b7703a694c0b" target="_blank"></a>
</div>
<div class="wap-wxcode">
	<div class="middle-box">
		<div class="middle-inner">
			<div class="wap-wxcode-con">
				<img src="/images/ff_ewm.jpg" alt=""/>
				<div class="wap-wxcode-bot"><span class="wxname">ciya68</span><button class="copy-btn" data-clipboard-text="ciya68">点击复制</button></div>
				<div class="gb1002"></div>
			</div>
		</div>
	</div>
</div>
<input id="hide" type="hidden">
<script src="/js/clipboard.min.js"></script>
<script>
	$(function(){
		$(".wx2").click(function(){
			$(".wap-wxcode").show();
		});
		$(".gb1002").click(function(){
			$(".wap-wxcode").hide();
		});
		var copyBtn=new ClipboardJS('.copy-btn');
		copyBtn.on("success",function(e){
			// 复制成功
			// alert(e.text);
			showMessage('已成功复制微信号','success',2000)
			e.clearSelection();
		});
		copyBtn.on("error",function(e){
			//复制失败；
			showMessage('复制微信号失败','error',2000)
			console.log( e.action )
		});
		function showMessage(message,type,time) {
			let str = ''
			switch (type) {
				case 'success':
					str = '<div class="success-message" style="width: 100%;height: 50px;background-color: #030026;font-size:17px;text-align: center;color:#fff;position: fixed;left: 0%;bottom: 0%;line-height: 50px;z-index: 9999">\n' +
							'    <span class="mes-text">'+message+'</span></div>'
					break;
				case 'error':
					str = '<div class="error-message" style="width: 100%;height: 50px;background-color: #030026;font-size:17px;text-align: center;color: #fff;position: fixed;left: 0%;bottom: 0%;line-height: 50px;z-index: 9999">\n' +
							'    <span class="mes-text">'+message+'</span></div>'
			}
			$('body').append(str)
			setTimeout(function () {
				$('.'+type+'-message').remove()
			},time)
		}


		var ua = navigator.userAgent.toLowerCase();
		var isWeixin = ua.indexOf('micromessenger')!= -1;
		if(isWeixin){
			$(".kef986").hide();
		}

	})
</script>
            </div>
        </div>
		<script type="text/javascript" src="/js/trunk.js?v=2"></script>
        <script>
            var zxal=null;
            var len=$(".zxal .swiper-slide").length;
            if(len>1){
                zxal = new Swiper('.zxal .swiper-container',{
                    speed:600,
                    loop:true,
                    autoplay : 5000,
                    autoplayDisableOnInteraction : false,
                    pagination : '.zxalDot',
                    paginationClickable :true,
                })
            }else{
                $(".zxalDot").hide();
            }
        </script>
	</body>
</html>

