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

DBCP连接池的最简单应用(用于ORACLE数据库)

阅读更多
鉴于有人问起DBCP直接用于JDBC连接的问题,我做了一个最简单的示例。所有资源来源于网上。它不需要什么Web容器,就是一简单的控制台应用。

资源:
http://apache.etoak.com//commons/pool/binaries/commons-pool-1.5.6-bin.zip
http://labs.renren.com/apache-mirror//commons/dbcp/binaries/commons-dbcp-1.4-bin.zip
http://download.java.net/maven/1/javaee/jars/javaee-api-5.jar
当然,还有oracle jdbc要用的ojdbc14.jar (适用于oracle9i及以上版本)

工程文件:放到这里了。http://dl.iteye.com/topics/download/210279f0-f752-37a6-969f-d58ba13cc394

数据库连接信息:
jdbc:oracle:thin:scott/tiger@sean-m700:1521:ora92
sean-m700是主机名,ora92是oracle数据库的instance ID. 我手头的机器上没有安装oracle数据库,用的是很早以前的一个oracle9.2的拷贝,重新安装实例和相应服务得来的。

源码如下:借化献佛,源码也是从网上得来的。(http://svn.apache.org/viewvc/commons/proper/dbcp/trunk/doc/BasicDataSourceExample.java?revision=1100136&view=markup)

/*
//
33  // Here's a simple example of how to use the BasicDataSource.
34  //
35  
36  //
37  // Note that this example is very similiar to the PoolingDriver
38  // example.
39  
40  //
41  // To compile this example, you'll want:
42  //  * commons-pool-1.5.6.jar
43  //  * commons-dbcp-1.3.jar (JDK 1.4-1.5) or commons-dbcp-1.4 (JDK 1.6+)
44  //  * j2ee.jar (for the javax.sql classes)
45  // in your classpath.
46  //
47  // To run this example, you'll want:
48  //  * commons-pool-1.5.6.jar
49  //  * commons-dbcp-1.3.jar (JDK 1.4-1.5) or commons-dbcp-1.4 (JDK 1.6+)
50  //  * j2ee.jar (for the javax.sql classes)
51  //  * the classes for your (underlying) JDBC driver
52  // in your classpath.
53  //
54  // Invoke the class using two arguments:
55  //  * the connect string for your underlying JDBC driver
56  //  * the query you'd like to execute
57  // You'll also want to ensure your underlying JDBC driver
58  // is registered.  You can use the "jdbc.drivers"
59  // property to do this.
60  //
61  // For example:
62  //  java -Djdbc.drivers=oracle.jdbc.driver.OracleDriver \
63  //       -classpath commons-pool-1.5.6.jar:commons-dbcp-1.4.jar:j2ee.jar:oracle-jdbc.jar:. \
64  //       PoolingDataSourceExample
65  //       "jdbc:oracle:thin:scott/tiger@myhost:1521:mysid"
66  //       "SELECT * FROM DUAL"
*/
/*
The Oracle connection URL for the thin client-side driver ojdbc14.jar has the following format:
jdbc:oracle:thin:[user/password]@[host][:port]:SID
jdbc:oracle:thin:[user/password]@//[host][:port]/SID

  user - The login user name defined in the Oracle server.

  password - The password for the login user.

  host - The host name where Oracle server is running. 
         Default is 127.0.0.1 - the IP address of localhost.

  port - The port number where Oracle is listening for connection.
         Default is 1521.

  SID  - System ID of the Oracle server database instance. 
         SID is a required value. By default, Oracle Database 10g Express 
         Edition creates one database instance called XE.
*/

import org.apache.commons.dbcp.BasicDataSource;
import javax.sql.*;
import java.sql.*;

public class TestDataSource
{

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        System.out.println("Setting up data source.");
        String url = "jdbc:oracle:thin:scott/tiger@sean-m700:1521:ora92";
        DataSource dataSource = setupDataSource(url);
        System.out.println("Done...");

        // Now, we can use JDBC DataSource as we normally would.
        //
        Connection conn = null;
        Statement stmt = null;
        ResultSet rset = null;

        try {
            System.out.println("Creating connection.");
            conn = dataSource.getConnection();
            System.out.println("Creating statement.");
            stmt = conn.createStatement();
            System.out.println("Executing statement.");
            rset = stmt.executeQuery("select 1 from DUAL");
            System.out.println("Results:");
            int numcols = rset.getMetaData().getColumnCount();
            while(rset.next()) {
                for(int i=1;i<=numcols;i++) {
                    System.out.print("\t" + rset.getString(i));
                }
                System.out.println("");
            }
        } catch(SQLException e) {
            e.printStackTrace();
        } finally {
            try { if (rset != null) rset.close(); } catch(Exception e) { }
            try { if (stmt != null) stmt.close(); } catch(Exception e) { }
            try { if (conn != null) conn.close(); } catch(Exception e) { }
        }
    }

    public static DataSource setupDataSource(String connectURI) {
        BasicDataSource ds = new BasicDataSource();
        ds.setDriverClassName("oracle.jdbc.driver.OracleDriver");
        ds.setUsername("scott");
        ds.setPassword("tiger");
        ds.setUrl(connectURI);
        return ds;
    }

    public static void printDataSourceStats(DataSource ds) {
        BasicDataSource bds = (BasicDataSource) ds;
        System.out.println("NumActive: " + bds.getNumActive());
        System.out.println("NumIdle: " + bds.getNumIdle());
    }

    public static void shutdownDataSource(DataSource ds) throws SQLException {
        BasicDataSource bds = (BasicDataSource) ds;
        bds.close();
    }

}

1
1
分享到:
评论

相关推荐

    常用数据库连接池 (DBCP、c3p0、Druid) 配置说明1

    数据库连接池是现代Java应用程序中不...总之,选择和正确配置数据库连接池是提高Java应用程序性能的关键步骤,不同的连接池各有优缺点,选择最适合项目需求的连接池并进行适当的优化,能有效地提升系统的稳定性和效率。

    Oracle+数据库例子(数据库连接池+中文乱码+留言板+过滤器)

    本资源包提供了一系列的实例,旨在帮助学习者掌握Oracle数据库与Java Web开发中的关键概念,包括数据库连接池、中文乱码处理、留言板功能以及过滤器技术。 首先,我们来看"数据库连接池"。数据库连接池是一种管理...

    JavaWeb连接Oracle数据库

    在JavaWeb开发中,连接Oracle数据库是常见的任务,主要用于存储和检索应用程序的数据。本文将详细介绍如何使用Java和JSP来实现这一目标,以及Oracle JDBC驱动的相关知识。 首先,Oracle是世界上最广泛使用的数据库...

    Tomcat web应用中配置连接池的详细过程

    本文将详细介绍如何在Tomcat环境中配置Oracle数据库连接池,并给出相应的配置示例。 #### 二、配置步骤 ##### 1. 在 `server.xml` 文件中配置数据源 首先,需要在Tomcat服务器的 `server.xml` 文件中的 `...

    连接Oracle数据库的登陆程序

    3. **Oracle数据库**:Oracle是世界上最流行的商业关系型数据库管理系统之一,尤其在企业级应用中广泛使用。在登录程序中,Oracle数据库存储了用户的账户信息,包括用户名和对应的加密密码。 4. **数据库连接池**:...

    JSP远程访问Oracle数据库.pdf

    - 连接池:为了提高性能和资源利用效率,可以使用连接池(如C3P0、DBCP或HikariCP)管理数据库连接。连接池预先创建一定数量的连接,供多个请求复用,避免频繁的连接创建和销毁。 - 准备语句:对于重复执行的SQL...

    java连接oracle的数据库驱动

    对于大型企业级应用,使用连接池如C3P0、HikariCP或Apache DBCP等可以提高性能和资源利用率。 总之,Java通过Oracle JDBC驱动与Oracle数据库的交互是一个标准的过程,包括加载驱动、建立连接、执行SQL和处理结果。...

    数据库连接 数据库的简单连接

    例如,Apache的`DBCP`或C3P0等连接池库。 此外,还可以使用更高级的API,如`PreparedStatement`,它允许预编译SQL语句,提升效率并防止SQL注入攻击。对于复杂的SQL操作,还可以使用`CallableStatement`来执行存储...

    oracle数据库

    2. 数据库连接池:介绍C3P0、DBCP、HikariCP等常见的数据库连接池组件,它们能有效地管理和重用数据库连接,提高性能并减少资源消耗。 3. Oracle SQL语法:涵盖DML(数据操纵语言)如INSERT、UPDATE、DELETE,以及...

    JDBC和数据库连接池,带源码和工具文件(在源码的libs文件夹里)!!!!

    Java Database Connectivity (JDBC) 是Java编程...了解和掌握JDBC及数据库连接池对于Java开发者至关重要,它们是构建可扩展、高性能的Java数据库应用的基础。正确使用JDBC和连接池可以显著提升应用程序的效率和稳定性。

    JDBC技术和数据库连接池专题

    - **DBCP**:Apache Commons Pool的一部分,提供基本的数据库连接池功能。 - **HikariCP**:一个高性能的JDBC连接池,专为现代应用设计。 总结来说,JDBC技术为Java应用程序提供了统一访问数据库的能力,而数据库...

    连接oracle的jar包-ojdbc6.jar

    Oracle数据库是世界上最流行的数据库管理系统之一,尤其在企业级应用中广泛应用。Java作为一种跨平台的编程语言,经常被用来开发与Oracle数据库交互的应用程序。在Java中,为了实现与Oracle数据库的连接,我们需要...

    Kettle连接Oracle、Mysql驱动包

    在实际操作中,可能还需要配置JDBC连接池,如C3P0或Apache DBCP,以提高性能和管理数据库连接。这涉及到额外的配置步骤,但能有效优化Kettle与数据库的交互。 在Kettle中,你可以使用这些连接来执行多种操作,如...

    java连接oracle的驱动和示例

    此外,Oracle还提供了连接池管理工具,如C3P0或Apache DBCP,这些可以帮助更有效地管理和复用数据库连接。 在提供的压缩包文件"java连接oracle驱动程序和例子"中,应该包含了更详细的示例代码和驱动库文件,您可以...

    java中jdbc连接oracle代码及jar包

    在实际应用中,通常会使用连接池来管理数据库连接,如C3P0、Apache DBCP或HikariCP,它们能提高性能并优化资源使用。 注意:Oracle的URL格式可能因环境不同而变化,`@localhost:1521:ORCL`表示连接到本地主机的1521...

    oracleJar.rar

    使用数据源可以简化数据库连接池的配置和管理,如使用C3P0、Apache DBCP或HikariCP等连接池。 3. JDBC驱动类型:Oracle JDBC驱动分为类型1、2、3和4。Type 1是纯Java驱动,只适用于简单的SQL操作;Type 2使用了本地...

    360safe.rar_oracle

    在Java编程环境中,Oracle数据库通常用于存储和管理应用程序的数据。 1. **Java数据库连接(JDBC)**: JDBC是Java API,允许Java程序员与各种类型的数据库进行交互,包括Oracle。通过JDBC驱动,Java应用可以执行SQL...

    java 中经常用到的连接数据库jar包

    在实际开发中,还可以使用连接池(如Apache DBCP、C3P0或HikariCP)来管理数据库连接,提高性能并减少资源消耗。连接池会在应用启动时预创建一定数量的连接,当应用需要时可以从池中获取,用完后归还,而不是每次...

    Java连接数据库的适配器

    本篇文章将详细讲解如何使用Java连接MySQL、Oracle、DerBy、SQLite和MariaDB这五种常见数据库,并涉及两种连接方式:SQL语句直接连接和通过连接池管理连接。 首先,我们来看SQL语句直接连接数据库的方式。这种方式...

Global site tag (gtag.js) - Google Analytics