`

数据库连接池的实现方式

阅读更多

转贴

 

 

 

 

查看文章
   

连接数据库的两种方式:

在Java应用程序中,数据库的连接一般有两种方式来得到。一种是通过java.sql.DriverManager的方式来得到数据库连接。这种方式不依赖于应用服务的支持,但是也不提供数据库连接池的功能。另外一种方式是通过javax.sql.DataSource的方式来得到数据库连接。在传统基于J2EE的应用需要通过JNDI来得到数据源(javax.sql.DataSource)对象,然后再通过数据源来得到相应的数据库连接。常见的应用服务器都支持这种方式,且一般都提供了数据库连接池的支持。如果不打算用应用服务器来管理你的数据库连接池,可以使用第三方的连接池管理工具如C3p0

一)jdbc直接连接,如下所示:   

    Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
    String user = "db2admin";
    String password = "db2kingdom";
    String url = "jdbc:db2://192.168.47.1:50000/TESTDB2";
    conn = DriverManager.getConnection(url,user,password);
   
    return conn;

二)使用数据源

   DataSource ds = null;
   try {
    Context ctx = new javax.naming.InitialContext();
    ds = (javax.sql.DataSource) (DataSource) ctx.lookup("jdbc/ccsb");

   } catch (NamingException e) {
    System.out.println("===初始化数据源失败!指定的JNDI不存在:jdbc/ccsb);
   } catch (Exception e) {
    e.printStackTrace();
   }
   return ds;

数据源的管理

一) 交由应用服务器来管理,然后在应用服务器的JNDI对象中通过lookup()方法来查找取得数据源.

在tomcat中配置server.xml文件:


        auth="Container"
        type="javax.sql.DataSource"
        driverClassName="oracle.jdbc.driver.OracleDriver"
        url="jdbc:oracle:thin:@192.168.0.8:1521:ora9i"
        username="ccsb"
        password="ccsb"
        maxActive="20"
        maxIdle="10"
        maxWait="-1"/>

通过在中注册一个资源Resource,这时,该数据源就已经交由应用服务器来管理了.该应用启动的时候,该资源就会被实例话并在应用服务器JNDI对象中保存该实例的一个句柄“jdbc/ccsb”,当要使用该数据源的时候,可以通过lookup这个句柄来取得该对象,并将其强制转型.

二) 交由第三方的数据源管理组件

如C3p0组件等,此时无法通过索引应用服务器的JNDI树来获得该数据源,因为JNDI是应用服务器相关的.

数据库连接池

当使用数据源来操作数据库时,可以配置使用数据库连接池,来提高访问数据库的效率,对于连接池的管理也分为两种:1)应用服务器管理   2)第三方数据源管理组件来管理


分享到:
评论

相关推荐

    c# mysql数据库连接池实现

    本文将深入探讨如何在C#中使用MySQL数据库连接池。 首先,我们需要了解什么是数据库连接池。数据库连接池是一种资源管理技术,它预先创建并维护一定数量的数据库连接,当应用需要时,可以从池中获取连接,使用完毕...

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

    `ConnectionPool`可能是项目或类库的命名空间或类,包含实际的数据库连接池实现;`Demo`可能是一个示例应用程序,展示如何使用自定义的数据库连接池。 5. **连接池实现细节**: - **初始化**:在应用程序启动时,...

    一个Demo小例子让你了解数据库连接池实现的4种方式

    本文将通过一个Demo小例子详细介绍四种常见的数据库连接池实现方式:C3P0、DBCP、HikariCP以及Druid。 首先,让我们了解数据库连接池的基本原理。数据库连接池在初始化时会创建一定数量的数据库连接,这些连接在...

    数据库连接池技术详解

    在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄漏 。 由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能...

    JAVA 完整的数据库连接池实现

    在 Java 中,有多种流行的数据库连接池实现,如 Apache Commons DBCP、C3P0、HikariCP 和 Druid 等。这里我们将以 HikariCP 为例,讲解如何配置和使用数据库连接池。 1. **HikariCP 简介** HikariCP 是一个高性能...

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

    ### C#中的数据库连接池实现 在C#中,主要使用ADO.NET框架来实现数据库连接池。以下是一些关键类和方法: 1. **System.Data.SqlClient.SqlConnection**:这是SQL Server数据库的连接类,支持连接池。在创建`...

    java实现数据库连接池

    Java 实现数据库连接池 Java 实现数据库连接池是指使用 Java 语言编写的数据库连接池,用于管理和分配...Java 实现数据库连接池是提高数据库访问效率和性能的一种有效方式,可以广泛应用于各种需要访问数据库的场景。

    03-数据库连接池驱动_数据库连接池;驱动_

    其次,Druid是阿里巴巴开源的数据库连接池实现,它不仅是一个连接池,还集成了监控、SQL解析、WebStatFilter等特性。Druid以其强大的监控能力、优秀的性能和全面的功能深受开发者喜爱。它提供了实时的监控界面,可以...

    非常好的数据库连接池实现

    数据库连接池 数据库连接池 数据库连接池 数据库连接池

    Java jdbc数据库连接池总结

    Java JDBC 数据库连接池总结 Java 语言中,JDBC(Java DataBase Connection)是应用程序与数据库沟通的桥梁。在 Web 应用开发的早期,主要使用的技术是 CGIASPPHP 等。之后,Sun 公司推出了基于 Java 语言的 ...

    常用jdbc数据库连接jar包,数据库连接池jar包

    本资源集合了常用的JDBC数据库连接jar包,以及一些知名的数据库连接池实现,如dbcp和c3p0,这对于开发人员来说是非常宝贵的资源。 首先,让我们了解一下JDBC。JDBC提供了一套标准的API,包括接口和类,使得开发者...

    thinkphp5-swoole 数据库连接池实现

    基于tp5的swoole支持,对th5的connection进行改造,使用Swoole\Coroutine\MySQL重写了基于swoole的PDO接口,实现了mysql的数据库连接池,本地测试可用。使用时,替换thinkphp/library/think/db/Connection.php,并...

    数据库连接池java代码实现

    数据库连接池在Java中的实现是提高应用程序性能的关键技术之一,它通过复用已存在的数据库连接,避免了频繁创建和销毁连接导致的系统资源浪费。本文将深入探讨如何使用Java代码来实现一个简单的数据库连接池,并解释...

    数据库连接池代码实现

    在本文中,我们将探讨如何实现一个简单的数据库连接池。首先,我们需要理解几个关键概念: 1. **连接池初始化**:在程序启动时,连接池会根据配置预先创建一定数量的数据库连接。这些连接在空闲时会被保存起来,...

    数据库连接池的实现(很完整(支持多种数据库

    综上所述,这个压缩包提供了一个全面的数据库连接池实现,适用于多种数据库,包括源码和测试,对于学习和开发数据库相关的应用程序具有很高的价值。通过研究和使用这个实现,开发者可以更好地理解和优化自己项目的...

    delphi实现数据库连接池

    在Delphi这个强大的Windows应用程序开发环境中,实现数据库连接池能够有效地解决频繁创建和销毁数据库连接带来的性能问题。下面我们将详细探讨如何在Delphi中实现数据库连接池,以及其核心概念和优势。 数据库连接...

    数据库连接池pdf

    ### 数据库连接池的核心概念与实现 #### 一、数据库连接池基础 数据库连接池是一种用于提高数据库访问效率的技术,其基本思想是在程序启动时预创建一定数量的数据库连接,并将其存储在一个“缓冲池”中。当应用...

    数据库连接池的三种实现方法

    在Java开发中,有三种常见的数据库连接池实现:DBCP(BasicDataSource)、C3P0以及阿里开源的Druid。下面将详细介绍这三种数据库连接池的实现原理和特性。 1. **DBCP (BasicDataSource)** DBCP 是 Apache Commons ...

    TP利用Swoole实现数据库连接池

    ThinkPhp利用swoole创建数据库连接池,优化数据读取,减少请求消耗!

    数据库连接池配置

    ### 数据库连接池配置 #### 一、引言 在基于数据库的应用开发中,数据库连接的管理和优化至关...在实际开发过程中,开发者应根据具体的应用场景灵活选择合适的连接池实现方案,并不断优化配置参数,以达到最佳效果。

Global site tag (gtag.js) - Google Analytics