基于JDBC的数据库连接池技术研究与应用
引言
近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机
应用程序已从传统的桌面应用转到Web应用。基于B/S(Browser/Server)架构的3层开发模式逐渐取代C/S(Client/Server)架构的开发模式,成为开发企业级应用和电子商务普遍采用的技术。在Web应用开发的早期,主要使用的技术是CGI﹑asp﹑php等。之后,Sun公司推出了基于java语言的Servlet+jsp+JavaBean技术。相比传统的开发技术,它具有跨平台﹑安全﹑有效﹑可移植等特性,这使其更便于使用和开发。
Java应用程序访问数据库的基本原理
在Java语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁,
即Java语言通过JDBC技术访问数据库。JDBC是一种“开放”的方案,它为数据库应用开发人员﹑数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯Java语言编写完整的数据库应用程序。JDBC提供两种API,分别是面向开发人员的API和面向底层的JDBC驱动程序API,底层主要通过直接的JDBC驱动和JDBC-ODBC桥驱动实现与数据库的连接。
一般来说,Java应用程序访问数据库的过程(如图1所示)是:
①装载数据库驱动程序;
②通过JDBC建立数据库连接;
③访问数据库,执行SQL语句;
④断开数据库连接。
图1 Java数据库访问机制
图2 连接池的基本工作原理
PRivate int checkedOut;//已被分配出去的连接数
private ArrayList freeConnections = new ArrayList();//容器,空闲池,根据//创建时间顺序存放已创建但尚未分配出去的连接
private int minConn;//连接池里连接的最小数量
private int maxConn;//连接池里允许存在的最大连接数
private String name;//为这个连接池取个名字,方便管理
private String password;//连接数据库时需要的密码
private String url;//所要创建连接的数据库的地址
private String user;//连接数据库时需要的用户名
public Timer timer;//定时器
public DBConnectionPool(String name, String URL, String user, String
password, int maxConn)//公开的构造函数
public synchronized void freeConnection(Connection con) //使用完毕之后,//把连接返还给空闲池
public synchronized Connection getConnection(long timeout)//得到一个连接,//timeout是等待时间
public synchronized void release()//断开所有连接,释放占用的系统资源
private Connection newConnection()//新建一个数据库连接
public synchronized void TimerEvent() //定时器事件处理函数
static private DBConnectionManager instance;//连接池管理类的唯一实例
static private int clients;//客户数量
private ArrayList drivers = new ArrayList();//容器,存放数据库驱动程序
static synchronized public DBConnectionManager getInstance()//如果唯一的//实例instance已经创建,直接返回这个实例;否则,调用私有构造函数,创//建连接池管理类的唯一实例
{
connMgr = DBConnectionManager.getInstance();
}
connMgr.release(); super.destroy();
}
基于JDBC的数据库连接池技术研究与应用相关推荐
- 【JDBC】数据库连接池技术
文章目录 一.数据库连接池技术 二.多种开源的数据库连接池 一.数据库连接池技术 1.数据库连接池的基本思想︰ 就是为数据库连接建立一个"缓冲池".预先在缓冲池中放入一定数量的连接 ...
- 基于JDBC的数据库连接池高效管理策略
2019独角兽企业重金招聘Python工程师标准>>> 介绍 在使用Java语言进行和数据库有关的的应用开发中,一般都使用JDBC来进行和数据库的交互,其中有一个关键的概念就是Con ...
- Java -- JDBC 学习--数据库连接池
JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模式开 ...
- 数据库连接池技术详解【吐血整理,疯狂推荐】
前言 今天来讲一下数据库连接池技术.其实这个名词也就是听起来高大上一点,实际上并不是很复杂的内容,相信在我的讲解下,并且自己实际的将代码写一遍之后,能够对这项技术有较为深刻的理解.废话不多说,开始讲解 ...
- jndi mysql数据库_数据库连接池技术中dbcp、c3p0、jndi
数据库连接池技术中dbcp.c3p0.jndi 发布时间:2020-05-26 08:52:33 来源:51CTO 阅读:371 作者:ikilun 不管通过何种持久化技术,都必须通过数据连接访问数据 ...
- java 连接池技术_java数据库连接池技术原理(浅析)
在执行数据库SQL语句时,我们先要进行数据连接:而每次创建新的数据库的连接要消耗大量的资源,这样,大家就想出了数据库连接池技术.它的原理是,在运行过程中,同时打开着一定数量的数据库连接,形成数据连接池 ...
- java阿里数据库连接池_Java学习:数据库连接池技术
本节内容 数据库连接池 Spring JDBC : JDBC Template 数据库连接池 1.概念:其实就是一个容器(集合),存放数据库连接的容器 当系统初始化好后,容器中会申请一些连接对象,当用 ...
- 【毕业设计】JSP数据库连接池的研究与实现(源代码+论文)
文章目录 目录 系统设计 系统实现 源文件 目录 系统设计 数据库连接池技术的设计思想非常简单,先将数据库连接作为对象存储在一个Vector对象中,Vector 类可以实现可增长的对象"数组 ...
- 数据库连接池及C3P0数据库连接池技术
数据库连接池(重要) 注意数据库连接池只是简化获得数据库连接对象和关流的部门 1.数据库连接池: 1.概念: 其实就是一个容器(在Java中就是集合),存在数据库连接的容器,当系统初始化好后,容器被创 ...
最新文章
- 【数据结构与算法】之深入解析“逆波兰表达式求值”的求解思路与算法示例
- Java虚拟机-逃逸分析(Escape Analysis)和栈上分配
- 打印list_按之字形顺序打印二叉树
- 将多个文件绑在一起执行
- 《快乐编程大本营》java语言训练班 1课:第一个java程序:你好,范冰冰;
- sigar-amd64-linux.so,sigar,no libsigar-amd64-linux.so in java.library.path
- swift3.0 coreData的基本使用,简单实现增删改查
- 2017.02.19学习C#的第二天,今天我学到了什么?
- [2019徐州网络赛J题]Random Access Iterator
- jQuery源码分析系列(35) : Ajax - jsonp的实现与原理
- php 批量打印word pdf,Office批量打印精灵教程--Word、PDF、Excel、PPT批量打印
- springboot整合fluent-mybatis,报错“...is not a @FluentMybatis Entity or it‘s Mapper not defined as bean.”
- Android开发-基本概念小整理(四)为了面试的小伙伴们所准备~~
- 上海职业学校计算机证书查询,证书查询
- python中0x是什么意思_弱问下,以0x开头的数值表示什么意思?
- 一些关于ROS的讨论 Robot Operating System – A flexible framework for writing robot software (ros.org)
- 注册 Ironic 裸金属节点并部署裸金属实例
- linux 下中文字体的支持
- 2018.07.12【2018提高组】模拟B组 【NOIP2015模拟10.27】魔法阵
- 打砖块游戏源码 (转)
热门文章
- java ee无法安装_为什么要导入javax.servlet。*; 安装Java EE仍无法解决 面向Java EE开发人员的Eclipse...
- mate40系统鸿蒙,Mate40领衔更新!鸿蒙系统首批升级机型名单:这些机型可坐等推送...
- java数据结构创建树_在java中创建树数据结构?
- [WPF自定义控件] 开始一个自定义控件库项目
- Java线程volatile(二)
- HTML如何实现斜体字
- 挖掘频繁模式、关联和相关性:基本概念和方法
- mac home目录创建文件夹,修改权限
- IOC与DI(xml 配置)
- JavaScript的一些小技巧(转)