在用JDBC连接数据库的时候,需要创建对数据库的连接,这样才能执行后续的操作。然而,这样做有两个问题:

  1. 数据库允许的连接个数有限
  2. 创建连接的过程需要消耗内存和时间

所以,JDBC引入了连接池的概念。也就是说,连接池里面维护着一些对数据的连接对象,我们的代码需要的时候直接拿来用就可以了,这样就不必每次需要对数据库连接的时候再新建Connection对象,节省时间空间,从而提高软件质量。(eg. Apache就维护了一个连接池,让我们的web 程序能够方便的使用)

这里我们使用Apache的开源组件DBCP连接池。DBCP连接池通过一个DasicDataSource对象来实现连接池的管理。DBCP可以从commons.apache.org官方网站下载,它包括三个JAR包。

常用接口如下:

示例代码:

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import org.apache.commons.dbcp2.BasicDataSource;

public class Hello

{

static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";

static String DB_URL = "jdbc:mysql://localhost:3306/mldn";

static final String USERNAME = "root";

static final String PASSWORD = "admin";

static BasicDataSource bds = null;

public static void dbPoolInit()

{

bds = new BasicDataSource();

bds.setUrl(DB_URL);

bds.setDriverClassName(JDBC_DRIVER);

bds.setUsername(USERNAME);

bds.setPassword(PASSWORD);

}

public static void main(String a[])

{

Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

Hello.dbPoolInit();

try

{

conn = bds.getConnection();

stmt = conn.createStatement();

rs = stmt.executeQuery("SELECT name FROM user;");

while(rs.next())

{

System.out.println("Hello " + rs.getString("name"));

}

} catch (SQLException e)

{

// TODO Auto-generated catch block

e.printStackTrace();

}

finally

{

try

{

conn.close();

stmt.close();

rs.close();

bds.close();

}

catch(Exception e)

{

//ignore all exceptions when closing.

}

}

System.out.println("///Done~~");

}

}

DBCP数据库连接池的更多相关文章

  1. 【Java EE 学习 16 上】【dbcp数据库连接池】【c3p0数据库连接池】

    一.回顾之前使用的动态代理的方式实现的数据库连接池: 代码: package day16.utils; import java.io.IOException; import java.lang.ref ...

  2. 一次项目实践中DBCP数据库连接池性能优化

    关于数据库连接池DBCP的关注源于刚刚结束的一轮测试,测试内容是衡量某Webserver服务创建用户接口的性能.这是一款典型的tomcat应用,使用的测试工具是Grinder.DBCP作为tomcat ...

  3. DBCP数据库连接池的使用

    DBCP的简单介绍: DBCP(DataBase Connection Pool)数据库连接池,是java数据库连接池的一种,由apache开发通过数据库连接池可以让程序自动管理数据库连接的释放和断开 ...

  4. DBCP数据库连接池的简单使用

    0.DBCP简介      DBCP(DataBase connection pool)数据库连接池是 apache 上的一个Java连接池项目.DBCP通过连接池预先同数据库建立一些连接放在内存中( ...

  5. java基础之JDBC六:DBCP 数据库连接池简介

    我们之前写的代码中的数据库连接每次都是自己创建,用完以后自己close()销毁的,这样是很耗费资源的,所以我们引入DBCP DBCP简介 概述: Data Base Connection Pool, ...

  6. DBCP数据库连接池原理分析

    在比较大的项目中,需要不断的从数据库中获取数据,Java中则使用JDBC连接数据库,但是获取数据库的连接可是相当耗时的操作,每次连接数据库都获得 .销毁数据库连接,将是很大的一个开销.为了解决这种开销 ...

  7. DBCP数据库连接池初探

    1. 概述 数据库连接是很“宝贵的”,如果每次获取Connection都去创建数据库连接,使用之后就断开,再次使用又重新创建,程序效率是很低的.因为Socket连接的建立很消耗资源. 所以需要数据库连 ...

  8. 03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbcp数据库连接池,通过配置文件使用dbcp数据库连接池

     DBCP数据源 使用DBCP数据源,需要导入两个jar包 Commons-dbcp.jar:连接池的实现 Common-pool.jar:连接池实现的依赖库. 导入mysql的jar包. DBC ...

  9. dbcp数据库连接池的java实现

    1.准备 导入jar包 commons-dbcp-1.4.jar commons-pool-1.3.jar 数据库驱动包,如:mysql-connector-java-5.1.28-bin.jar 2 ...

随机推荐

  1. CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  2. php download断点

    FileDownload.class.php <?php /** php下载类,支持断点续传 *   Date:   2013-06-30 *   Author: fdipzone *   Ve ...

  3. httpclient详细介绍

    1.HttpClient简介 HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 ...

  4. 透明度兼容性(ie8以上)

    转载:http://www.cnblogs.com/PeunZhang/p/4089894.html demo代码:文件中,背景透明,文字不透明的研究和使用.zip

  5. 解决每次打开office 2010显示正在配置的问题

    解决每次打开office 2010显示正在配置的问题 OFFICE 2010 MSDN版出来后,下载安装 ,启动后发现每次打开都会出现“正在配置”的进度,删除重装亦不成功,对SETUP.EXE改名也不 ...

  6. get utc+8 当时时间

    /// <summary> /// get utc+8 当时时间 /// </summary> /// <returns></returns> publ ...

  7. SPOJ #10657. LOGIC (riddle)

    1 line in Ruby(2.0), 36B: p (1..n=gets.to_i).reduce(:*)+2**n-n

  8. 【转】Linux 的启动流程

    半年前,我写了<计算机是如何启动的?>,探讨BIOS和主引导记录的作用. 那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操 ...

  9. 【转】JVM 分代GC策略分析

    我们以Sun HotSpot VM来进行分析,首先应该知道,如果我们没有指定任何GC策略的时候,JVM默认使用的GC策略.Java虚拟机是按照分代的方式来回收垃圾空间,我们应该知道,垃圾回收主要是针对 ...

  10. \r\n的坑

    \r回车符 \n换行符 由于历史原因,windows下的换行符为\r\n linux或者html等开源或公开标准的换行符是\n ---- 为什么windows下的回车换行是\r\n? 第一台打印机,每 ...