JDBC数据库连接池技术
在JDBC中,获得连接或释放资源是非常消耗系统资源的两个过程,为了解决此类性能问题,通常采用连接池技术,来共享连接。这样我们就不需要每次都创建连接、释放连接了,这些操作都交给了连接池。
用池的概念来管理Connection,这样可以重复使用Connection。有了连接池以后就不用自己亲自创建连接而是通过连接池来获得Connection对象。当使用完Connection之后,调用Connection的close()方法不是真的将连接关闭,而是把Connection归还给连接池。连接池就可以继续保留这个Connection给其他用户使用了。
Java为了数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池来实现这个接口,这样应用程序可以方便的切换不同厂商的连接池。有三个常用的连接池:DBCP、C3P0和druid
DBCP连接池
DBCP是一个开源的连接池,是Apache Common成员之一,在企业开发中也比较常见,tomcat内置的连接池。
在使用DBCP之前,要引入2个包:commons-dbcp.jar和commons-pool.jar。

package com.dbcp.demo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource; public class DemoDBCP {
// 连接数据库的参数
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String URL = "jdbc:mysql://localhost:3306/mybatis";
public static final String USERNAME = "root";
public static final String PASSWORD = ""; // 创建连接池
public static BasicDataSource dataSource = new BasicDataSource(); // 静态代码块
static {
// 对连接池对象进行基本的配置
dataSource.setDriverClassName(DRIVER); // 待连接的数据库的驱动
dataSource.setUrl(URL); // 指定要连接的数据库的地址
dataSource.setUsername(USERNAME); // 指定要连接的用户名
dataSource.setPassword(PASSWORD); // 指定要连接数据库的密码 // 这里应该还有设置连接数的语句
} // 返回连接池对象
public static DataSource getDataSource() {
return dataSource;
} // 测试连接池
public static void main(String[] args) throws SQLException {
// 获得连接池
DataSource dataSource = DemoDBCP.getDataSource();
// 从连接池中获得连接
Connection conn = dataSource.getConnection();
// 准备sql语句
String sql = "insert into person (LastName, FirstName, Address, Age) values" +
" (?, ? ,?, ?)";
// 获得PresparedStatement对象
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置参数
pstmt.setString(1, "张");
pstmt.setString(2, "三");
pstmt.setString(3, "埃塞俄比亚");
pstmt.setInt(4, 24);
// 执行CRUD操作
pstmt.execute();
// 关闭连接
conn.close();
}
}
DBCP常见的配置选项
必须的配置项
driverclassName 数据库驱动名称
url 数据库的地址
username 用户名
password 密码
基本项
maxActive 最大连接数
initialSize 连接池中初始化多少个Connection连接对象
扩展项
maxWait 超时等待时间以毫秒为单位
JDBC数据库连接池技术的更多相关文章
- 基于JDBC的数据库连接池技术研究与应用
引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用.基于B/S(Browser/Server)架构的3层开 ...
- .数据库连接池技术:DBCP和C3P0
数据库连接池技术:DBCP和C3P0 1.什么是数据库连接池 已知的方法是需要访问数据库的时候进行一次数据库的连接,对数据库操作完之后再释放这个连接,通常这样业务是缺点很明显的: 用户每次请求都需要向 ...
- Java jdbc数据库连接池总结!(转)
1. 引言 近年来,随着Internet/Intranet建网技术的飞速发展和在世界范围内的迅速普及,计算机 应用程序已从传统的桌面应用转到Web应用.基于B/S(Browser/Server)架构的 ...
- 【Java】数据库连接池技术
JDBC的问题 在程序中,我们经常要建立与数据库的连接,之后再关闭这个连接.我们知道,数据库连接对象的创建是比较消耗系统性能的,这些频繁的操作势必会消耗大量的系统资源.因此我们需要采用更高效的数据库访 ...
- JDBC 数据库连接池
http://www.cnblogs.com/lihuiyy/archive/2012/02/14/2351768.html JDBC 数据库连接池 小结 当对数据库的访问不是很频繁时,可以在每次 ...
- java数据库连接池技术简单使用
JDBCDemo.java: package com.itheima.jdbc; import java.sql.Connection; import java.sql.PreparedStateme ...
- java攻城狮之路--复习JDBC(数据库连接池 : C3P0、DBCP)
复习数据库连接池 : C3P0.DBCP 1.数据库连接池技术的优点: •资源重用: 由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销.在减少系统消耗的基础上,另一方面也增 ...
- Java学习:数据库连接池技术
本节内容 数据库连接池 Spring JDBC : JDBC Template 数据库连接池 1.概念:其实就是一个容器(集合),存放数据库连接的容器 当系统初始化好后,容器中会申请一些连接对象,当用 ...
- JAVA之JDBC数据库连接池总结篇
JDBC数据库连接池 一.JDBC数据库连接池的必要性 二.数据库连接池技术 三.多种开源的数据库连接池 3.1 C3P0数据库连接池 3.2 DBCP数据库连接池 3.3 Druid(德鲁伊)数据库 ...
随机推荐
- JSPatch打补丁
http://www.cnblogs.com/dsxniubility/p/5080875.html http://www.jianshu.com/p/0cb81bf23d7a
- Web自动化测试工具调研
背景 Web自动化测试越来越被重视, 因为现在Web已经是工程化的状态. 如何通过工具测试, 保证Web开发的质量,提升开发效率,是Web工具的诞生的来由. Web测试分为以下几个方面: 1. 界面测 ...
- GPS部标平台的架构设计(九)-GPS监控客户端设计
交通部的部标过检,所有的测试都是从客户端发起的,也是在客户端体现的,在客户端承载了部标标准所要求的所有的功能,是整个部标平台当中工作量最大的部分,也是最繁琐的部分. 客户端设计面临两个问题: 1.基于 ...
- The prefix "util" for element "util:list" is not bound.
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4. ...
- cocos的helloworld写法
我觉得吧,做工作是找一份自己喜欢的工作,然后一做很多年,想做安卓就去做,做苹果也去做,现在想转行做游戏,游戏方向有很多,选定前段吧,选定平台COCOS,COOCS有2D和3D,先玩2D吧,写一个hel ...
- hdu 2037 今年暑假不AC
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- openGL漫游功能简单实现
最近弄openGL漫游功能的时候,在网上找了好多源码都没有达到预期效果,然后就自己写了一个算法分享一下. 上下键实现位移,左右键实现转动. 算法思想:由于改变观察点函数原型为: void gluLoo ...
- Windows平板优化设置
低于千元的windows平板,和iPad差异主要在于做工方面,以及Modern软件的欠缺,续航约5小时,但其可玩性和扩展性更好. 若将其视为平板附送了桌面电脑的功能,花费一定时间容易定制成适合个人使用 ...
- linux环境下学习使用pro*c/c++工具
1.proc是oracle用来预编译嵌入SQL语句的c程序. 2.如何使用proc工具 在Linux环境下,首先确保gcc编译器正常使用,安装oracle数据库或者客户端,一般就会默认安装pro*c/ ...
- Dynamics AX 2012 R2 SSRS报表在VS2010中预览没有数据
今天,Reinhard 在VS中制作SSRS报表,预览的时候发现显示不出数据. 仔细检查了数据处理环节和临时表里的数据,都发现没有问题. 用同事的账号登陆同样的开发环境,发现他的账号可以在VS中预览到 ...