`
BradyZhu
  • 浏览: 248275 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JDBC学习之路(十一)使用开源项目DBCP

 
阅读更多

大家使用过JDBC的都知道,这个数据源在数据库连接的时候非常重要,对于性能的优化更是大大的提升,当然了,

一般只需要了解数据源是包装了从数据库获得的连接,然后放到连接池中,使用的时候直接从连接池中拿出连接,使用

完毕后,就再放入到连接池中,然后对于Connection 的使用没有改变,还是直接close。其实是对Close方法做了内部

实现改进,不是关闭连接而是把连接放入到连接池中。这样使用的时候是感觉不到的,而且数据源的优化远远不止这

些,它还能够动态的控制连接池内活动连接的多少,根据系统的负载动态的增加或者减少连接池内部的活动链接个数。

可以说是非常好的,当然了,实现一个真正能应用的数据源是非常复杂的,我们先学会怎么使用就好,下面来演示一下

如何使用Apache的开源项目,DBCP,DataBase Connection Pool的缩写。

首先需要下载commons-dbcp-1.4-bin,但是他倚赖commons-collections-3.2.1-bin,commons-pool-1.6-bin,这两

个包,需要把他们的JAR包导入到工程中,然后需要一个配置文件来配置一下连接数据库的一些默认参数

#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=mysql

#<!-- 初始化连接 -->
initialSize=10

#最大连接数量
maxActive=50

#<!-- 最大空闲连接 -->
maxIdle=20

#<!-- 最小空闲连接 -->
minIdle=5

#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWait=60000


#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;] 
#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。
connectionProperties=useUnicode=true;characterEncoding=gbk

#指定由连接池所创建的连接的自动提交(auto-commit)状态。
defaultAutoCommit=true

#driver default 指定由连接池所创建的连接的只读(read-only)状态。
#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)
defaultReadOnly=

#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。
#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
defaultTransactionIsolation=READ_UNCOMMITTED

最后就是使用了,其实非常简单,就是一句代码

package com.bird.jdbc;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;
/**
 * JDBC工具类
 * @author bird
 *
 */
public final class Temple {
	private static DataSource dataSource;
	
	private Temple() {
	}

	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			
			Properties pro = new Properties();
			InputStream in = Temple.class.getClassLoader().getResourceAsStream("dbcpconfig.properties");
			pro.load(in);
			
			dataSource = BasicDataSourceFactory.createDataSource(pro);//注意这段代码!!!
		} catch (Exception e) {
			throw new ExceptionInInitializerError(e);
		}
	}

	public static Connection getConnection() throws SQLException {
		return dataSource.getConnection();
		
	}

	public static void free(Connection con, Statement st, ResultSet rs) {
		try {
			if (rs != null)
				rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (st != null)
					st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {

				if (con != null)
					try {
						con.close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
			}
		}
	}

	

}

BasicDataSourceFactory.createDataSource(pro);这句话就是使用dbcp的代码,非常简单,下面的工作就是交给

DBCP去完成了哦!

分享到:
评论

相关推荐

    jdbc 开源jar包

    commons-beanutils-1.8.0 commons-codec-1.11 commons-dbcp-1.3 commons-dbcp-1.4 commons-dbutils-1.3 commons-logging-1.2 commons-pool-1.6以及 mysql-connector-java-5.1.7-bin等jar包

    jdbc的jar包.zip

    Java之jdbc学习使用,DBCP 数据库连接池 DBCP 是 Apache 软件基金组织下的开源连接池实现,要使用DBCP数据源,需要应用程序应在系统中增加如下两个 jar 1. Commons-dbcp.jar:连接池的实现 ...

    自己写一个DAO 实现对jdbc dbcp封装 开源小组件

    本组件为本人学习研究之产物,可用于小型项目或初学者学习之用 主要实现了对数据库的基本访问,包括oracle,mysql数据库的分页查询

    阿里巴巴的开源项目JDBC连接池、监控组件 Druid.zip

    Druid是阿里巴巴的一款java开源的为监控而生的数据库连接池组件。Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库...

    JAVAWEB-16:JDBC编程进阶(自定义数据源+开源数据源:DBCP、C3P0)

    JAVAWEB-16:JDBC编程进阶(自定义数据源+开源数据源:DBCP、C3P0)

    JDBC封装类升级版,支持DBCP、C3P0连接池,Java连接数据库带例子

    Java JDBC封装类升级版,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean...有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类使用。

    JdBC的访问方式DBCP连接池和C3P0

    DBCP也是一个开源的连接池,是Apache Common成员之一,在企业开发中也比较常见,tomcat内置的连接池。C3P0访问数据库技术,方便快捷,牵扯到的jar包可去网上下载!

    commons-dbcp-1.4.jar

    DBCP是Apache提供的一款开源免费的数据库连接池!Hibernate3.0之后不再对DBCP提供支持!因为Hibernate声明DBCP有致命的缺欠!DBCP因为Hibernate的这一毁谤很是生气,并且说自己没有缺欠。

    你不知道的JDBC高级应用

    程序启动的时候慢点,后期对数据库CRUD大幅度提升.(常用开源连接池DBCP) 3.特殊类型(date--日期,clob--大字段,blob--二进制) 的操作. 4.元数据(MetaData)的操作:包括 parameter , DB , ResultSet的元数据,配合反射,大...

    简易java开源订销管理系统

    1、本订销系统程序默认使用数据为连接池使用的apache commons-dbcp-1.2.1管理数据库连接(tomcat自带),确保该包可用.若要使用其它数据库连接沲,需要修改easyjf-dbo.xml文件中的相应配置。 2、若不能正常访问数据库,...

    常用开源数据库连接池 文档和源码及jar包

    C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 DBCP(DataBase connection pool),数据库连接池。是 ...

    sharding-jdbc-1.5.1:sharding-jdbc原始码解析

    分片JDBC是JDBC的扩展,提供了诸如分片,读/写拆分和BASE事务之类的分布式功能。 特征 1.分片 分布式数据库中支持的聚合功能,分组依据,排序依据和限制SQL。 支持联接(内部/外部)查询。 分片运算符= ,支持...

    开源数据库连接池

    开源数据库连接池 jra 包,包含 c3p0 dbcp 等 文件数据包以及jdbc事务控制管理ppt

    Apache ShardingSphere 中文文档 分库分表

    Apache ShardingSphere 是一款开源的分布式数据库生态项目,由 JDBC 和 Proxy 两款产品组成。其核心采用微内核 + 可插拔架构,通过插件开放扩展功能。它提供多源异构数据库增强平台,进而围绕其上层构建生态。 ...

    Druid(JDBC组件) v1.2.18

    Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。 Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。 Druid已经在...

    Java连接数据库的综合类

    Apache提供的一个对JDBC进行简单封装的开源工具类库, 它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。 二、为什么需要Dbutils ? 在使用Dbutils 之前,我们Dao层使用的技术是JDBC,那么分析一下JDBC的...

    JDBC专题(七)-数据库连接池 DataSource Pool.docx

    开源数据库连接池(第三方企业中使用的连接池) 4.1.DBCP数据源 4.2.C3P0连接池 4.3.Druid连接池 4.3.1.druid连接池的使用 1.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而...

    关于JDBC与数据库连接池,你了解多少?

    文章目录1 JDBC1.1 使用JDBC的基本步骤1.2 JDBC工具类构建1.3 数据库的CRUD1.4 Dao模式1.5 Statement安全问题1.6 PrepareStatement2 数据库连接池2.1 自定义数据库连接池2.2 解决自定义数据库连接池出现的问题。...

    sharding-jdbc:原始解析-源码解析

    分片JDBC是JDBC的扩展,提供了诸如分片,读/写拆分和BASE事务之类的分布式功能。 特征 1.分片 分布式数据库中支持的聚合函数,分组依据,排序依据和限制SQL。 支持联接(内部/外部)查询。 分片运算符= ,支持...

    JSP在线销售管理系统.rar

    服务器环境,tomcat5.0,主要实现的功能有订单录入、打印,销售汇总、原料管理、客户管理、生产配料计算、报表打英汇总、系统数据管理及维护等功能,是一个使用非常简单的编码方式实现的Web开源应用系统。安装注意...

Global site tag (gtag.js) - Google Analytics