本次博客带领大家学习传统方式连接数据库的弊端和数据库连接池原理。

传统获取Connection问题分析

  1. 传统的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证IP地址,用户名和密码(0.05s ~ 1s 时间)。需要数据库连接的时候,就向数据库要求一个,频繁的进行数据库连接操作将占用很多的系统资源,容易造成服务器的崩溃。
  2. 每一次数据库连接,使用完后都得断开,如果程序出现异常而未能关闭,将导致数据库内存泄漏,最终将导致重启数据库。
  3. 传统获取连接的方式,不能控制创建的连接数量,如连接过多,也可能导致内存泄漏,MySQL崩溃。
  4. 解决传统开发中数据库连接问题,可以采用数据库连接池技术(connection pool)。

传统方式连接数据库的案例

public void testCon(){//看看连接 - 关闭 connection 会耗用多久System.out.println("开始执行");long start = System.currentTimeMillis();for (int i=0;i<5000;i++){//使用传统的jdbc方式,得到连接Connection connection = JDBCUtils.getConnection();//关闭JDBCUtils.close(null,null,connection);}long end = System.currentTimeMillis();System.out.println("批量方式 耗时="+(end-start));
}

数据库连接池的基本介绍

  1. 预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从"缓冲池"中取出一个,使用完毕之后再放回去。
  2. 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个。
  3. 当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。
  4. 数据库连接池的图文分析:

数据库连接池种类

  1. JDBC 的数据库连接池中使用 javax.sql.DataSource 来表示,DataSource只是一个接口,该接口通常由第三方提供实现。
  2. C3P0 数据库连接池,速度相对较慢,稳定性不错(hibernate,spring)。
  3. DBCP 数据库连接池,速度相对C3P0较快,但不稳定。
  4. Proxool 数据库连接池,有监控连接池状态的功能,稳定性较C3P0差一点。
  5. BoneCP 数据库连接池,速度快。
  6. Druid(德鲁伊) 是阿里提供的数据库连接池,集C3P0、DBCP、Proxool优点于一身的数据库连接池。

传统方式连接数据库的弊端和数据库连接池原理相关推荐

  1. 数据库连接池原理以及好处

    本篇内容综合广大网友提供内容,笔者经过整理,对数据库连接池原理和实现过程做个很系统的并且通俗易懂的分析讲解,以及手写一个连接池实现过程作为演示. 一.早期通过JDBC方式操作数据库 我们先来看早期使用 ...

  2. 数据库连接池原理和使用

    数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏 ...

  3. Golang 侧数据库连接池原理和参数调优

    Golang 侧数据库连接池原理和参数调优 文章目录 Golang 侧数据库连接池原理和参数调优 数据库连接池 数据库连接池的设计 Go 的数据库连接池 Go 数据库连接池的设计 建立连接 释放连接 ...

  4. python多线程并发访问数据库连接池原理以及代码

    现状 在工作中难免会使用数据库,为了能够高效并发访问数据库,数据库连接池必不可少,由于本站copy模式盛行,导致数据库连接池被错误使用,遇到错误甚至追求能跑通就行. 本文就python版本的数据库链接 ...

  5. java jdbc close原理_JDBC数据库连接池原理

    JDBC是java数据库连接的简称.它是一种用于实行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成.其相关的API都在java.sql.*包下 ...

  6. 回答完数据库连接池原理,面试官跪着求我入职他们公司

    前戏--被面试官虐待的经历 来自面试官发自灵魂深处的拷问:说说你对连接池的理解: 一脸懵逼的我:"额~ ~ ~,连接池是把数据库的连接统一进行管理,做到连接复用的目的": 咄咄逼人 ...

  7. Java中数据库连接池原理机制的详细讲解

    连接池的基本工作原理 1.基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理.我们知道,对于共享资源,有一个很著名的设计模式:资源池(ResourcePool).该模式正 ...

  8. java数据库连接池原理

    转自:http://tech.ccidnet.com/art/1105/20070718/1148193_1.html 连接池的基本工作原理 1.基本概念及原理 由上面的分析可以看出,问题的根源就在于 ...

  9. 数据库连接池原理及常用连接池介绍

    一.背景介绍 1.1 什么是连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个. 1.2 为什么要使用连接池 数据库连接是一种关键的有 ...

最新文章

  1. python 删除list 里面的一个空集合
  2. 对话高博(一)| 机器码、Pascal,以及计算机学习的分形
  3. 网站页面设计基本尺寸
  4. 同底数幂比较大小方法_知识体系构建:初中数学4大知识点及10大解题方法总结(干货)...
  5. mysql 帐号开启远程_两大步骤教您开启MySQL 数据库远程登陆帐号
  6. .Net Core中Dapper的使用详解
  7. 行为型设计模式(5)—— 策略模式(Strategy Pattern)
  8. python基础之列表、元组和字典
  9. c# 使用NPOI按模板导出excel
  10. 动力电池集成关键技术及电池测试与验证
  11. 《python语言程序设计》笔记
  12. 2021年焊工(初级)考试报名及焊工(初级)最新解析
  13. 10麦客和300挖藕人
  14. JavaScript 中的BOM对象
  15. curl命令发送Post请求
  16. Matlab_GUI gcf、gca 以及gco 的区别用法
  17. 九州云亮相中国国际工业博览会 展出最新边缘计算技术
  18. linux删除文件夹或者文件
  19. Android视频编辑器(一)通过OpenGL预览、录制视频以及断点续录等
  20. Apache服务器安装SSL证书

热门文章

  1. 国家开放大学2021春1089现代教育思想答案
  2. 幽默:老公和老婆斗智
  3. MFA音素对齐版本降级
  4. 大学毕业一年---性格决定命运
  5. 平安科技2020校招技术岗部分编程题
  6. linux系统怎么使用
  7. 超宽带无线电:汽车传统钥匙演化手机智能钥匙的关键技术
  8. 使用kali命令行界面
  9. Python网络爬虫是什么意思?
  10. Power Pivot常用函数