大家使用过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去完成了哦!
分享到:
相关推荐
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包
Java之jdbc学习使用,DBCP 数据库连接池 DBCP 是 Apache 软件基金组织下的开源连接池实现,要使用DBCP数据源,需要应用程序应在系统中增加如下两个 jar 1. Commons-dbcp.jar:连接池的实现 ...
本组件为本人学习研究之产物,可用于小型项目或初学者学习之用 主要实现了对数据库的基本访问,包括oracle,mysql数据库的分页查询
Druid是阿里巴巴的一款java开源的为监控而生的数据库连接池组件。Druid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库...
JAVAWEB-16:JDBC编程进阶(自定义数据源+开源数据源:DBCP、C3P0)
Java JDBC封装类升级版,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean...有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类使用。
DBCP也是一个开源的连接池,是Apache Common成员之一,在企业开发中也比较常见,tomcat内置的连接池。C3P0访问数据库技术,方便快捷,牵扯到的jar包可去网上下载!
DBCP是Apache提供的一款开源免费的数据库连接池!Hibernate3.0之后不再对DBCP提供支持!因为Hibernate声明DBCP有致命的缺欠!DBCP因为Hibernate的这一毁谤很是生气,并且说自己没有缺欠。
程序启动的时候慢点,后期对数据库CRUD大幅度提升.(常用开源连接池DBCP) 3.特殊类型(date--日期,clob--大字段,blob--二进制) 的操作. 4.元数据(MetaData)的操作:包括 parameter , DB , ResultSet的元数据,配合反射,大...
1、本订销系统程序默认使用数据为连接池使用的apache commons-dbcp-1.2.1管理数据库连接(tomcat自带),确保该包可用.若要使用其它数据库连接沲,需要修改easyjf-dbo.xml文件中的相应配置。 2、若不能正常访问数据库,...
C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。 DBCP(DataBase connection pool),数据库连接池。是 ...
分片JDBC是JDBC的扩展,提供了诸如分片,读/写拆分和BASE事务之类的分布式功能。 特征 1.分片 分布式数据库中支持的聚合功能,分组依据,排序依据和限制SQL。 支持联接(内部/外部)查询。 分片运算符= ,支持...
开源数据库连接池 jra 包,包含 c3p0 dbcp 等 文件数据包以及jdbc事务控制管理ppt
Apache ShardingSphere 是一款开源的分布式数据库生态项目,由 JDBC 和 Proxy 两款产品组成。其核心采用微内核 + 可插拔架构,通过插件开放扩展功能。它提供多源异构数据库增强平台,进而围绕其上层构建生态。 ...
Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。 Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。 Druid已经在...
Apache提供的一个对JDBC进行简单封装的开源工具类库, 它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。 二、为什么需要Dbutils ? 在使用Dbutils 之前,我们Dao层使用的技术是JDBC,那么分析一下JDBC的...
开源数据库连接池(第三方企业中使用的连接池) 4.1.DBCP数据源 4.2.C3P0连接池 4.3.Druid连接池 4.3.1.druid连接池的使用 1.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而...
文章目录1 JDBC1.1 使用JDBC的基本步骤1.2 JDBC工具类构建1.3 数据库的CRUD1.4 Dao模式1.5 Statement安全问题1.6 PrepareStatement2 数据库连接池2.1 自定义数据库连接池2.2 解决自定义数据库连接池出现的问题。...
分片JDBC是JDBC的扩展,提供了诸如分片,读/写拆分和BASE事务之类的分布式功能。 特征 1.分片 分布式数据库中支持的聚合函数,分组依据,排序依据和限制SQL。 支持联接(内部/外部)查询。 分片运算符= ,支持...
服务器环境,tomcat5.0,主要实现的功能有订单录入、打印,销售汇总、原料管理、客户管理、生产配料计算、报表打英汇总、系统数据管理及维护等功能,是一个使用非常简单的编码方式实现的Web开源应用系统。安装注意...