数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

当我们没有数据库连接池时,采用多线程进行数据库连接操作时,可能会出现多进程抢夺资源的情况,而导致在进行事务处理的时候出现各种异常
所以我们需要建立数据库连接池

原理实现:

**实质上连接池就是通过单例 在进行工具类调用连接后通过一个集合来建立几个连接对象
在进行连接的时候来通过集合分配对象,采用对象锁来限制多线程的资源抢夺情况**
代码如下

package cn.hncu.utils;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;public class Conn2utils {// 连接池public static String url = "jdbc:mysql://localhost:3306/luojuan";public static String driver = "com.mysql.jdbc.Driver";static String password = "1234";static String user = "root";private static List<Connection> pool = new ArrayList<Connection>();private static final int MAX = 3;static {try {Class.forName(driver);for (int i = 0; i < MAX; i++) {Connection con = DriverManager.getConnection(url, user,password);pool.add(con);}} catch (Exception e) {e.printStackTrace();}}public synchronized static Connection getConn() throws Exception {if (pool.size() <= 0) {System.out.println("池中没了请稍候");Thread.sleep(1000);return getConn();} else {return pool.remove(0);}}public static void back(Connection con) {System.out.println("往池中还con...");pool.add(con);}
}

数据库连接池原理和使用相关推荐

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

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

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

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

  3. 传统方式连接数据库的弊端和数据库连接池原理

    本次博客带领大家学习传统方式连接数据库的弊端和数据库连接池原理. 传统获取Connection问题分析 传统的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要 ...

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

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

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

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

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

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

  7. jsp获取连接池的实时连接数_数据库连接池原理分析及模拟实现

    数据库访问 访问数据库主要有以下几个步骤: 加载数据库驱动 创建数据库连接 执行访问操作并处理执行结果 关闭连接,释放资源 在每一次请求数据库都要经历上述过程,创建连接和释放资源也都是些重复性的动作, ...

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

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

  9. 数据库连接池原理及应用

    1.运作原理 在实际应用开发中,特别是在WEB应用系统中,如果JSP.Servlet或EJB使用JDBC直接访问数据库中的数据,每一次数据访问请求都必须经历建立数据库连接.打开数据库.存取数据和关闭数 ...

最新文章

  1. 熬了一晚上,我从零实现了Transformer模型,把代码讲给你听
  2. CMDB收集资产脚本
  3. MARSHALL LIBRARY OPENING HOURS
  4. 出道50年+!乘风破浪的编程语言们,能二次翻红吗?
  5. oracle em配置报错,oracle em 启动报错OC4J Configuration issue
  6. NestedScrollView、RecycleView、ViewPager 嵌套常见问题
  7. php输出一条直线,Photoshop脚本 绘制一条线
  8. java中的static类_再议Java中的static关键字
  9. ssms 连接 ssis_在SSMS中手动设置SSIS包加密
  10. Python 笔记(一)字典与json使用及注意点
  11. java破解ip屏蔽+多线程同步拨号-【多线程数据采集之五】
  12. selinium如何多线程_求教个selenium+grid+testng多线程运行的问题
  13. html+div+css+jquery+javascript的关系
  14. 用户使用DocConvert处理文档后对DocConvert的评价
  15. 段落分页与换行、让段落不在二页上
  16. 关于peer‘s certificate issuer is not recognized问题的解决方法
  17. 2022年广东省安全员A证第三批(主要负责人)考试题模拟考试题库及答案
  18. chrome用 --proxy-server 单独设置代理
  19. 7种抓包工具详细介绍
  20. 京东云智臻链开源两周年,JD Chain领跑国内自研区块链技术

热门文章

  1. aes解密流程图_基于AES和混沌的图像加密方法与流程
  2. 数据库密码错误,但是密码没有填错(制数据转换规则)
  3. CSS样式字体与文本相关属性
  4. 海康录像机识别不到硬盘_海康威视监控硬盘录像机NVR画面显示资源不足解决办法设置方法...
  5. 计算机常用工具软件实训总结报告,计算机常用工具软件实训报告.doc
  6. SilvacoPIN仿真-负极(N区)取不同直流电压数值计算过程
  7. CentOS 7安装Mysql8.0
  8. 深入探讨——信道利用率[停止-等待协议、回退N帧的ARQ协议]
  9. 无纸化手写电子签名是现今不可或缺的技术
  10. EUI学习之Group