数据库连接池简介

从零编写linux0.11 - 第二章 内核初始化 编程环境:Ubuntu Kylin 16.04 代码仓库:https://gitee.com/AprilSloan/linux0.11-project linux0.11源码下载(不能直接编译,需进行修改) 1.添加内核 进入内核后也不是马上进入main函数,上一章只是暂时设置gdt,此外还要设置idt和其他的一些初始化操作,这些内容也要使用汇编进行编写,此处采用AT&T格式的汇编。 以下为head.s的内容,为了简单起见,内容还是一个死循环。 .globl startup_32 startup_3 阅读详情

   在传统的两层结构中,客户端程序在启动时打开数据库连接,在退出程序时关闭数据库连接。这样,在整个程序运行中,每个客户端始终占用一个数据库连接,即使在大量没有数据库操作的空闲时间,如用户输入数据时,从而造成数据库连接的使用效率低下。
在三层结构模式中,数据库连接通过中间层的连接池管理。只有当用户真正需要进行数据库操作时,中间层才从连接池申请一个连接,数据库操作完毕,连接立即释放到连接池中,以供其他用户使用。这样,不仅大大提高了数据库连接的使用效率,使得大量用户可以共享较少的数据库连接,而且省去了建立连接的时间。

连接池的配置使用
数据库连接池是应用服务器的一项基本功能,我们以Apusic Application Server为例,来说明
JDBC连接池的配置使用。

Apusic
JDBC连接池提供对多种数据库的支持,如Oracle、MS SqlServer、Sybase、Informix、DB2等。

Apusic
JDBC连接池可以通过数据库本身的JDBC Driver连接到数据库,也可以通过JDBC-ODBC桥连接到数据库。下面我们以Oracle为例说明如何配置连接池:

Oracle数据库的
JDBC Driver包文件classes111.zip在/usr/oracle/jdbc/lib(假设oracle的安装目录是/usr/oracle)目录下,首先将classes111.zip加入到系统的CLASSPATH中。然后在apusic/config/apusic.conf(假设安装目录为apusic) 中作如下设置:

<SERVICE
CLASS="com.apusic.jdbc.PoolManager"
NAME="JdbcPool:name=jdbc/sample"
>
<ATTRIBUTE NAME="ExpirationTime" VALUE="300"/>
<ATTRIBUTE NAME="MinCapacity" VALUE="5"/>
<ATTRIBUTE NAME="URL" VALUE="jdbc:oracle:thin:@192.168.19.136:1521:orcl"/>
<ATTRIBUTE NAME="ConnectionProperties" VALUE="user=gtj,password=abc123"/>
<ATTRIBUTE NAME="DriverClassName" VALUE="oracle.jdbc.driver.OracleDriver" />
<ATTRIBUTE NAME="MaxCapacity" VALUE="30"/>
</SERVICE>

ExpirationTime: 超时时间,单位是秒。当一个数据库连接超过expirationTime设定时间不被使用
时,系统会自动关闭这个数据库连接。默认值为300秒
MinCapacity: 最小连接数
URL: 数据库的URL
ConnectionProperties: 连接属性,其中:user用户名,password密码
DriverClassName:
JDBC驱动程序类名
MaxCapacity: 最大连接数
192.168.19.136: oracle所在计算机的IP地址。
 
调用连接池
我们以一个JSP程序为例,说明如何使用连接池。首先通过JNDI得到DataSource,再的得到连接Connection,如下例所示:


<html>

<head>

<title>Jsp sample</title>

</head>

<body>

<p>

<%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="

java.sql.*,

javax.naming.*,

javax.sql.*

"%>

<%

try{

Context ctx = new InitialContext();

DataSource ds = (DataSource)ctx.lookup("jdbc/sample");

Connection con = ds.getConnection();

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("select ENAME from EMP");

while(rs.next()){

out.println("<p>" + rs.getString(1));

}

rs.close();

stmt.close();

}catch(Exception e){

System.out.println("jsp:" + e.getMessage());

}finally{

try{

con.close();

}catch(Exception e1){}

}

%>

</body>

</html>


国产机载操作系统天脉ACoreOS实战:从零搭建开发环境到应用移植 本文详细介绍了国产机载操作系统天脉ACoreOS的实战开发流程,从核心特性解析到开发环境搭建,再到VxWorks应用移植策略。重点阐述了其符合ARINC 653标准的时空分区架构如何保障高可靠性,并提供了从零创建分区工程、重构通信与任务代码的具体步骤,为开发者向这一国产化平台迁移提供了实用指南。 阅读详情

相关推荐

[软考]系统架构设计师 备考经验分享(一) - 备考计划篇

前言 上周末刚刚结束了软考架构师的考试,自我感觉考的还可以,大概率是过了。 两次参加软考,一次中级嵌入式,一次高级架构师,都是备考不到两个月时间,尤其是架构师这次考试内容和本职工作有不小的差别,并且需要同时备考三个科目,在高强度地备考中感觉是摸索出到了一点软考的技巧与经验。 打算趁还记得,赶紧写几篇文章做下梳理总结,算是给将来自己考系分、高项或者其他考试做个记录,也希望能够帮到正在备考的大家。 先把第一步,个人的备考计划分享给大家。 自身情况分析 首先,请大家一定先明确三个问题,这三个问题会直接影响到你的

_ 6335

【Android】数据库连接池简介

每次提到连接池我们很快能想到线程池。线程池的创建可以减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务。 数据库连接是一种关键的有限的昂贵的资源,对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,减少链接不断传销和销毁带来的资源浪费。 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是

sinat_36955332的博客 860

别再手动算考勤了!教你用Python+企业微信API自动生成月度报表

本文介绍如何利用Python和企业微信API构建自动化考勤分析系统,实现从数据获取到可视化报表生成的全流程自动化。通过企业微信打卡接口获取数据,使用Pandas进行高效清洗和分析,并生成Excel和HTML格式的报表,大幅提升考勤统计效率。系统支持智能判定考勤状态,如迟到、早退等,并可通过定时任务实现月度自动化运行。

weixin_27875131的博客 252

数据库连接池

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

a2398496515的博客 419

数据库连接池介绍、主要参数设置、作用

数据库连接池 dataSource 1.平时用的数据库类型?? dbcp  c3p0 2.连接池需要那些配置?? 初始化连接数量 initialSize 最大连接数 maxActive 最大空闲连接数 maxIdle 最小空闲链接数 minIdle 空闲时间 maxWait 3.数据库连接池的作用?? 数据连接池是让对象的数量保持一个适量的范围,可以保护稀有

peichuangaoling的专栏 5633

SQL Server .NET Framework 数据提供程序连接池

 有朋友建议我控制连接池的连接,说是为了提高性能,但看了下面的这个文章,感觉连接池是由系统自身进行维护的,程序没有必要去进行控制的。大家有什么意见吗?在连接问题上,是否有提高性能的方法? SQL Server .NET Framework 数据提供程序连接池 池连接可以显著提高应用程序的性能和可缩放性。SQL Server .NET Framework 数据提供程序自

416

数据库连接池-简介&Druid使用

此处注意”test“为数据库名称,用时注意修改成自己相应的数据库名称;小技巧:注意路径这边可以先注释其他代码,直接打印,来查看当前文件路径。我这边遇到过的问题是如果你使用的SQL是8.0以上的话需要使用。​ 最后运行即可,成功连接,打印出JDBC的连接对象,结果如图。我们在文件中打开后,只选取后面的路径,即相对路径如下即可。此处我选择在与我druid同一个文件目录下创建配置文件。导入jar包 druid-1.1.12.jar。如果使用的SQL是8.0以下则使用。Druid(德鲁伊)获取数据库连接池对象。

BinCund的博客 3569

16. JDBC连接池数据库连接池简介

JDBC连接池   —— 数据库连接池简介(connection pool) 1. JDBC直接连接操作数据库的弊端 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet、bean)中建立数据库连接 进行sql操作 断开数据库连接 这种模式开发,存在的问题: 普通的JDBC数据库连接使用DriverManager来获取,每次向数据库建立连接的时候都要将Connection加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向

散场前的温柔的博客 405

html数据库连接池,数据库连接池简介

在传统的两层结构中,客户端程序在启动时打开数据库连接,在退出程序时关闭数据库连接。这样,在整个程序运行中,每个客户端始终占用一个数据库连接,即使在大量没有数据库操作的空闲时间,如用户输入数据时,从而造成数据库连接的使用效率低下。在三层结构模式中,数据库连接通过中间层的连接池管理。只有当用户真正需要进行数据库操作时,中间层才从连接池申请一个连接,数据库操作完毕,连接立即释放到连接池中,以供其他用户使...

weixin_33836042的博客 189

谈谈数据库连接池的原理

谈谈数据库连接池的原理 帅宏军 这次我们采取技术演进的方式来谈谈数据库连接池的技术出现过程及其原理,以及当下最流行的开源数据库连接池jar包。 一.早期我们怎么进行数据库操作 1.原理:一般来说,java应用程序访问数据库的过程...

369540808 2089

数据库连接池学习笔记(一):原理介绍+常用连接池介绍

什么是连接池 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。 为什么要使用连接池  数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。  一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动...

CrankZ的博客 9万+

第13次作业-数据库连接池

数据库连接池 DataSource接口 它可以建立获取数据库连接对象,负责数据库建立连接,并且定义返回值。 DBCP数据源 Commons-dbcp.jar包 它是DBCP的数据源实现包,包含了所以的操作数据库连接信息和数据库连接池初始化信息的方法 Commons-pool.jar包 它是DBCP数据库连接池实现包的依赖包,为实现包提供了支持,所以依赖包也是很重要的 通过BasicDataSource类来直接创建数据源对象 在使用BasicDataSource类创...

YZ020206的博客 1554

tomcat5.0+mysql配置JDBCRealm,DBCP,ssl,及中文乱码解决详解

准备环境:1.j2sdk-1_4_2-windows-i586.exe    //jdk2.mysql-4.0.20d-win.zip        //mysql数据库3.mysqlcc-0.9.4-win32.zip    //mysqlGUI控制4.jakarta-tomcat-5.0.27.exe    //tomcat服务器5.mysql-connector-java-3.0.14-pr

Zero'Coffee 4489

半导体器件键合失效模式及机理分析.pdf

半导体器件键合失效模式及机理分析.pdf

电机控制原理动画演示

电机控制动画演示,形象直观展示电机运行过程中三相电流和磁场变化。对初学者很有帮助.资源共享!原来需要积分下载,现在共享一下!

上一篇: 用SQLJ开发数据库
下一篇: 数据库连接池技术浅析
dzeng81
博客等级 码龄23年 117粉丝 436原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值