`
avery_leo
  • 浏览: 388023 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

连接池(二)

阅读更多

(1) DBCP连接池
DBCP连接池是Apache软件基金组织下的一个开源连接池实现。
需要: commons-dbcp-1.2.1.jar //连接池的实现
commons-pool.jar //连接池实现的倚赖库
commons-collection.jar //连接池实现的倚赖库


代码:

package wyd.spring.datasource.dbcp;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;

public class DBCPDataSource {
private static BasicDataSource dataSource=null;
private static final String driver="com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/wyd";
private static final String userName="root";
private static final String password="root";

public static DataSource getDataSource(){
if(dataSource==null){
dataSource=new BasicDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(userName);
dataSource.setPassword(password);
}

return dataSource;
}

public static Connection getConnection() throws SQLException{

return DBCPDataSource.getDataSource().getConnection();
}

}

 

 


(2) C3PO 连接池
C3PO 连接池是一个优秀的连接池,推荐使用。C3PO实现了JDBC3.0规范的部分功能,因而性能更加突出。
需要的jar包: c3po0.902.jar

代码:
package wyd.spring.datasource.c3po;

import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;


import wyd.spring.datasource.dbcp.DBCPDataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

 

public class C3PODataSource {
private static ComboPooledDataSource dataSource=null;
private static final String driver="com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/wyd";
private static final String userName="root";
private static final String password="root";

public static DataSource getDataSource(){
if(dataSource==null){
dataSource=new ComboPooledDataSource();
try {
dataSource.setDriverClass(driver);
} catch (PropertyVetoException e) {
System.out.println("DataSource Load Driver Exception!!");
e.printStackTrace();
}
dataSource.setJdbcUrl(url);
dataSource.setUser(userName);
dataSource.setPassword(password);
//设置连接池最大连接容量
dataSource.setMaxPoolSize(20);
//设置连接池最小连接容量
dataSource.setMinPoolSize(2);
//设置连接池最大statements对象容量
dataSource.setMaxStatements(100);

}

return dataSource;
}


public static Connection getConnection() throws SQLException{

return DBCPDataSource.getDataSource().getConnection();
}
}

 

 

 

(3)SmartDataSource 连接池
SmartDataSource 继承DataSource接口。让除了提供DataSource的基本方法之外,还提供一个额外的功能,在恰当的时候关闭连接。也就是说,通过SmartDataSource获得的连接是无须关闭连接的。
当程序中需要不断重用某个连接的时候,SmartDataSource对提高非常有用。SmartDataSource判断数据库是否需要关闭,通过如下方法体现。

boolean shouldClose(Connection con)
该方法由smartDataSource的实现类提供实现。当该方法返回true时,SmartDataSource实例子在该方法返回true时关闭连接。
SmartDataSource 接口的一个实现类是: SingleConnectionDataSource 类

它是单连接的DataSource,可以认为 MaxPoolSize=1,MinPoolSize=1
需要 jar 包: spring-jdbc.jar
spring-beans.jar
spring-dao.jar
spring-core.jar
commons-logging.jar

代码:
package wyd.spring.datasource.smart;

import java.sql.Connection;
import java.sql.SQLException;

import org.springframework.jdbc.datasource.SingleConnectionDataSource;
import org.springframework.jdbc.datasource.SmartDataSource;

public class SCDataSource {
private static SingleConnectionDataSource datasource=null;
private static final String driver="com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/ws";
private static final String userName="root";
private static final String password="root";

public static SmartDataSource getDataSource(){
if(datasource==null){
datasource=new SingleConnectionDataSource();
datasource.setDriverClassName(driver);
datasource.setUrl(url);
datasource.setUsername(userName);
datasource.setPassword(password);
datasource.setSuppressClose(false);

}
return datasource;
}

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

}

分享到:
评论

相关推荐

    Tomcat连接池配置.doc

    二、Tomcat 连接池配置的步骤 Tomcat 连接池配置可以分为以下几个步骤: 1. 下载和安装 Tomcat 和其管理控件包 2. 安装 Tomcat 并启动服务器 3. 在浏览器中输入网址并登录 Tomcat 管理控制台 4. 配置全局数据库...

    tomcat连接池与阿里Druid连接池

    二、阿里 Druid 连接池配置 阿里 Druid 连接池配置需要在 Maven 项目中添加 Druid 依赖项,并在 application.properties 文件中配置数据库连接信息。下面是阿里 Druid 连接池的配置示例: ```xml <!-- Druid 依赖项...

    自己实现的ActiveMQ连接池和新版本ActiveMQ自带的连接池,封装好的工具类,可直接使用

    本资源提供的内容是关于ActiveMQ的连接池实现,分为两部分:一是作者自己实现的ActiveMQ连接池,二是新版本ActiveMQ自带的连接池。连接池是一种资源管理技术,通过复用已建立的数据库连接或网络连接,减少创建和销毁...

    oracle 数据库,在C++中用连接池实现高速连接与访问.rar

    2. 创建连接池:通过oci池化函数ociPoolCreate创建连接池,指定最小、最大连接数以及空闲连接超时时间。 3. 获取连接:当需要访问数据库时,从连接池中获取一个已建立的连接,而不是每次都新建。 4. 使用连接:执行...

    Tomcat6配置连接池

    ### Tomcat6配置连接池详解 #### 一、引言 在Java Web开发中,数据库连接池技术的应用极为广泛。合理的数据库连接管理不仅能提高应用程序的性能,还能有效避免因频繁创建销毁连接所导致的资源浪费问题。Apache ...

    weblogic连接池配置数据库断掉重连的问题

    Weblogic 连接池配置数据库断掉重连的问题 在 Weblogic 中,连接池配置数据库断掉重连是一个非常重要的问题。连接池配置是 Weblogic 中的一种机制,用于管理与数据库的连接。然而,在实际应用中,我们经常会遇到...

    使用连接池技术时的配置

    使用连接池技术时的配置 在本文中,我们将讨论使用连接池技术时的配置,特别是关于 Tomcat、MySQL 和 Eclipse 的数据库连接池配置。 一、开发工具介绍 为了配置连接池,我们需要使用以下开发工具: * Tomcat ...

    Java 连接池多种方式配置

    二、DBCP连接池 Apache的DBCP(Database Connection Pool)也是一个常见的连接池实现。配置DBCP时,我们需要在项目的类路径下放置dbcp的基本配置文件(如:dbcp.properties),或者在应用的配置文件(如:...

    R2数据库连接池高性能连接池v1.3

    R2Pool pool2=R2PoolUtil.getPool(new File("第二个连接池的配置文件.properties")); Connnection conn2 = pool2.getConnection(); 修改源代码,请保留作者信息 张人杰 北京师范大学 计算机系 alex.zhangrj...

    手动设计自定义数据库连接池

    #### 二、连接池的工作原理 连接池的工作机制主要体现在以下几个方面: 1. **连接的创建与维护**:连接池在启动之初就会创建一定数量的数据库连接,并将这些连接放入一个池中。这些连接会在整个应用运行期间保持...

    mongo设置连接池

    #### 二、连接池的重要参数及设置 MongoDB连接池提供了多个关键参数来控制其行为,合理配置这些参数可以显著提高系统的性能和稳定性。以下是一些重要的参数: - **connectionsPerHost**: 每个主机的最大连接数。这...

    连接池单例代码

    ### 连接池单例代码解析 #### 一、引言 在软件开发尤其是Web应用开发过程中,数据库连接是至关重要的资源之一。由于创建数据库连接消耗较多系统资源且效率较低,因此合理管理和重用数据库连接变得尤为重要。连接池...

    Java 连接池【示例】

    二、常用的Java连接池库 2.1 DBCP (BasicDataSource) Apache Commons DBCP 是一个开源的连接池实现,提供了基础的数据库连接池功能。它基于Jakarta POI项目中的数据库连接池实现,简单易用,适合小型项目。 2.2 C3P...

    DBCP数据库连接池jar包.zip

    1. `commons-dbcp2-2.6.0-bin`:这是DBCP2的二进制发行版,包含了编译后的jar文件,可以直接在项目中引用,用于实现数据库连接池的功能。 2. `commons-pool2-2.6.1-src`:Apache Commons Pool2的源代码,它是DBCP2...

    java数据库连接池

    知识点二:数据库连接池的重要性 1. 性能提升:数据库连接的创建和销毁是非常耗时的操作,尤其是在高并发场景下,如果每次访问数据库都重新创建连接,会严重影响系统的性能。使用连接池可以复用已经创建的连接,显著...

Global site tag (gtag.js) - Google Analytics