`

连接池类的使用

 
阅读更多
使用DBCP

package com.datasource;

import java.sql.Connection;
import java.sql.Statement;

import org.apache.commons.dbcp.BasicDataSource;

public class DBConn

    {

    private static DBConn dc;

    private Connection conn = null;

    private Statement stmt = null;

    private DBConn()

    {

    }

    public static DBConn instance()

    {

    if (dc == null)

    {

    dc = new DBConn();

    }

    return dc;

    }

    public Statement openStmt()

    {

    if (stmt == null)

    {

    conn = getConn();

    try

    {

    stmt = conn.createStatement();

    }

    catch (Exception e)

    {

    System.err.println("创建Statement异常: " + e.getMessage());

    }

    }

    return stmt;

    }

    public void closeStmt()

    {

    if (stmt != null)

    {

    try

    {

    stmt.close();

    }

    catch (Exception e)

    {

    System.err.println("Statement关闭异常");

    }

    }

    if (conn != null)

    {

    try

    {

    conn.close();

    }

    catch (Exception e)

    {

    System.err.println("数据库关闭异常");

    }

    }

    }

    private Connection getConn()

    {

    if (conn == null)

    {

    try

    {

    BasicDataSource ds = new BasicDataSource();

    ds.setDriverClassName("com.mysql.jdbc.Driver");

    ds.setUrl("jdbc:mysql://localhost:3306/j2ee");

    ds.setUsername("root");

    ds.setPassword("123456");

    conn = ds.getConnection();

    }

    catch (Exception e)

    {

    e.printStackTrace();

    }

    }

    return conn;

    }

    }




使用C3P0:
package com.datasource;

import java.sql.Connection;
import java.sql.Statement;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class DBConnC3p0

    {

    private static DBConnC3p0 dc;

    private Connection conn = null;

    private Statement stmt = null;

    private DBConnC3p0()

    {

    }

    public static DBConnC3p0 instance()

    {

    if (dc == null)

    {

    dc = new DBConnC3p0();

    }

    return dc;

    }

    public Statement openStmt()

    {

    if (stmt == null)

    {

    conn = getConn();

    try

    {

    stmt = conn.createStatement();

    }

    catch (Exception e)

    {

    System.err.println("创建Statement异常: " + e.getMessage());

    }

    }

    return stmt;

    }

    public void closeStmt()

    {

    if (stmt != null)

    {

    try

    {

    stmt.close();

    }

    catch (Exception e)

    {

    System.err.println("Statement关闭异常");

    }

    }

    if (conn != null)

    {

    try

    {

    conn.close();

    }

    catch (Exception e)

    {

    System.err.println("数据库关闭异常");

    }

    }

    }

    public Connection getConn()

    {

    if (conn == null)

    {

    try

    {

    ComboPooledDataSource ds = new ComboPooledDataSource();

    ds.setDriverClass("com.mysql.jdbc.Driver");

    ds.setJdbcUrl("jdbc:mysql://localhost:3306/j2ee");

    ds.setUser("root");

    ds.setPassword("32147");

    ds.setMaxPoolSize(40);

    ds.setMinPoolSize(2);

    ds.setMaxStatements(180);

    conn = ds.getConnection();

    }

    catch (Exception e)

    {

    e.printStackTrace();

    }

    }

    return conn;

    }

    }










分享到:
评论

相关推荐

    简单的jdbc连接池类

    本示例中的"简单的jdbc连接池类"实现了一个基本的数据库连接池功能,非常适合初学者理解和实践。 首先,我们来理解`jdbc`。JDBC(Java Database Connectivity)是Java语言用来与各种数据库进行交互的一种标准接口。...

    java ftp连接池

    而通过使用连接池,我们可以预先创建并维护一定数量的FTP连接,供多个并发任务共享,从而减少连接创建和关闭的开销。 FTP连接池的核心概念包括: 1. 连接池管理:连接池维护了一组FTP连接,根据需求分配或回收这些...

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

    这样的工具类通常包含初始化连接池、获取连接、释放连接以及关闭连接池等方法。 其次,新版本ActiveMQ自带的连接池服务,也称为PooledConnectionFactory,是官方推荐的连接管理方式。它提供了自动管理和维护连接的...

    DELPHI DataSnapXE连接池类

    在实际开发中,使用 Delphi DataSnap 的连接池类需要了解如何正确配置和使用这些类,确保它们与你的数据库架构和应用需求相匹配。这包括理解数据库驱动的兼容性、连接参数的设置,以及在多线程和高并发环境下的性能...

    一个好用的连接池类,用于数据库连接等方面

    本文将深入探讨“一个好用的连接池类”,以及如何将其应用到数据库连接和其他资源分配中。 首先,连接池类的基本思想是预先创建一定数量的数据库连接,并将它们保存在一个池中。当应用程序需要连接时,可以从池中...

    spring中 连接池的使用

    下面将详细介绍这两种连接池的使用以及它们的配置参数。 1. **Apache DBCP (BasicDataSource)** Apache的DBCP是Spring早期常见的连接池实现。在示例配置中,可以看到`<bean>`标签定义了一个名为`dataSource`的...

    学习有关连接池的使用

    本文将深入讲解如何在Java环境中,特别是Tomcat服务器中配置和使用连接池,以及通过JNDI(Java Naming and Directory Interface)查找和使用数据源。 首先,连接池的配置通常在应用服务器的配置文件中完成。在...

    okhttp中连接池实现

    如果一个连接长时间未使用或者服务器已经关闭了连接,OkHttp会将其从连接池中移除,防止资源浪费。 3. **连接池的大小限制**:为了防止过多的连接占用系统资源,OkHttp为每个主机名设定了连接数量的最大值。超出这...

    JAVA数据库连接池类

    本篇文章将深入解析一个自定义的JAVA数据库连接池类,帮助开发者更好地理解和运用这一关键技术。 首先,连接池的基本思想是预先创建一定数量的数据库连接,并存储在一个集合(如Vector)中,供应用程序按需获取和...

    C# 数据库连接池 C# 数据库连接池

    5. **超时与回收**:连接池会设定每个连接的最大生命周期,超过这个时间未被使用的连接会被自动回收,防止因长时间未使用的“僵尸”连接占用资源。 ### C#中的数据库连接池实现 在C#中,主要使用ADO.NET框架来实现...

    数据库连接池java代码实现

    首先,我们需要定义一个连接池类,它通常包含以下组件: 1. **连接池容量**:定义了池中最大可以保存的连接数量,这是连接池大小的一个上限。 2. **空闲连接列表**:存储当前未被使用的数据库连接。 3. **已借用...

    proxool连接池使用详细说明

    下面将详细讲解Proxool连接池的使用方法及其核心概念。 1. **Proxool简介** Proxool是Apache软件基金会的一个开源项目,它提供了一个轻量级的数据库连接池实现。Proxool通过创建一个数据库连接池来管理数据库连接...

    java socket连接池 实现

    在实际开发中,为了更好地管理和监控连接池,我们还可以记录每个连接的使用情况,比如连接的生命周期、使用频率等,以便于优化连接池的配置,提高系统资源的利用率。 总的来说,Java Socket连接池是解决高并发网络...

    ActiveMQ连接池完整封装实例工具类

    在企业级应用中,为了提高消息处理的效率和稳定性,通常会使用连接池来管理与ActiveMQ服务器的连接。本文将详细介绍如何实现一个ActiveMQ连接池的完整封装实例工具类,并探讨其背后的设计思想。 首先,我们需要了解...

    C#高效数据库连接池源码

    在C#中,可以使用`System.Data.Common.DbConnection`作为基类,创建自定义的数据库连接类,然后在此基础上实现连接池逻辑。 4. **源码分析**: `ConnectionPool.sln`是解决方案文件,包含项目的整体配置和依赖关系...

    强大的Java连接池类 for .Net

    我自行开发的一套Java平台的数据库连接池类,内部使用的是线程控制,其详细原理说明在CSDN进其将有所发布,届时也有源代码结实说明,该压缩文件中包含连接池运行的jar文件和其帮助手册中文版,未竟严格代码测试) ...

    强大的Java连接池类 for Java 附带源代码。

    我自行开发的一套Java平台的数据库连接池类,内部使用的是线程控制,其详细原理说明在CSDN进其将有所发布,届时也有源代码结实说明,该压缩文件中包含连接池运行的jar文件和其帮助手册中文版,(未竟严格代码测试) ...

    delphi实现数据库连接池

    在Delphi中,我们可以使用TDBXConnectionPool组件或者自定义类来实现数据库连接池。TDBXConnectionPool是IBX(InterBase XE)库的一部分,它可以管理和复用数据库连接。如果选择自定义,我们需要设计一个类来维护...

Global site tag (gtag.js) - Google Analytics