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

oracle 数据库连接池

阅读更多
J2EE应用中与Oracle数据库的连接 
  在J2EE应用程序开发中,应用程序与数据库连接的建立是我们经常遇到的问题之一。在这里我主要谈谈在本地应用程序中通过OCI方式、thin方式和 JdbcOdbc桥方式连接Oracle数据库,在iPlanet   Application   Server   6.5和Sun   Java   System   Application   Server   7中对Oracle数据库连接池的配置以及应用中如何从连接池中获得连接 
  一、本地通过JDBC获得Oracle数据库连接 
  通过JDBC获得Oracle数据库连接,有三种方式:OCI方式、thin方式和JdbcOdbc桥方式。OCI方式依赖于本地的动态链接库,如果在本地安装了Oracle数据库客户端可以采用该方式;而thin方式为纯java的数据库连接方式;JdbcOdbc桥方式依赖于本地ODBC数据库源的配置,这种方式一般不太被采用。 
  1、OCI方式 
  先在本地安装Oracle客户端,安装完之后,在安装的路径中可以找到…/jdbc/lib/classes12.zip文件,我们在环境变量 classpath中设置classes12.zip所在的路径。 
  然后通过以下的数据库连接类,在本地通过OCI方式获得Oracle数据库连接 
  /** 
  *   在本地获得数据库连接 
  */ 
  
  package   com.j2ee.db; 
  
  import   java.util.*; 
  import   java.sql.*; 
  import   javax.sql.*; 
  import   java.io.*; 
  import   oracle.jdbc.driver.*;   
  import   javax.naming.*;         
  
  /** 
  *   通过OCI方式获得Oracle数据库连接 
  */ 
  public   class   DbConnection   
  { 
      final   static   String   sDBDriver   =   "oracle.jdbc.driver.OracleDriver"; 
      final   static   String   sConnStr   =   "jdbc:oracle:oci8:sr/sr@ora199"; 
      
      /** 
      *   
      */ 
      public   DbConnection()   
      { 
      } 
      
      /** 
      *   获得Oracle数据库连接   
      */ 
      public   java.sql.Connection   connectDbByOci()   
      {     
      java.sql.Connection   conn=null;     
      try 
      { 
      Class.forName(sDBDriver); 
      conn   =   DriverManager.getConnection(sConnStr); 
      } 
      catch   (Exception   e)   
      { 
              System.out.println("ERROR:"+e.getMessage());   
      }   
      return   conn; 
      } 
  } 
  在连接字符串   "jdbc:oracle:oci8:sr/sr@ora199"   中,"sr/sr"为Oracle用户的用户名和口令,"ora199"为数据库服务名。 
  2、thin方式 
  先到Oracle技术网(http://otn.oracle.com/global/cn/software/tech/java/sqlj_jdbc /index.html)下载Oracle   JDBC   Drivers,同样地将下载后的zip文件的路径设置在环境变量classpath。 
  然后通过以下的数据库连接类,在本地通过thin方式获得Oracle数据库连接。 
  /** 
  *   在本地获得数据库连接 
  */ 
  
  package   com.j2ee.db; 
  
  import   java.util.*; 
  import   java.sql.*; 
  import   javax.sql.*; 
  import   java.io.*; 
  import   oracle.jdbc.driver.*;   
  import   javax.naming.*;         
  
  /** 
  *   通过thin方式获得Oracle数据库连接 
  */ 
  public   class   DbConnection   
  { 
  private String   sConnStr   =   ""; 
      
  /** 
  *   缺省构造器 
  */ 
  public   DbConnection()   
  { 
  sConnStr   =   "jdbc:oracle:thin:@10.1.4.199:1521:ora199"; 
  } 
  
  /** 
  *   @param   ip,serviceName 
  */ 
  public   DbConnection(String   ip,String   serviceName)   
  { 
  sConnStr   =   "jdbc:oracle:thin:@"+ip+":1521:"+serviceName; 
  } 
      
  /** 
  *   通过thin方式获得Oracle数据库的连接. 
  */ 
  public   java.sql.Connection   connectDbByThin()   
  {     
  java.sql.Connection   conn=null;   
  try 
  { 
  Class.forName(sDBDriver); 
  conn   =   DriverManager.getConnection(sConnStr,"sr","sr"); 
  } 
  catch   (Exception   e)   
  { 
  System.out.println("ERROR:"+e.getMessage());   
  }   
  return   conn; 
  } 
  
  /** 
  *   通过thin方式获得Oracle数据库的连接. 
  *   @param   userId,password 
  */ 
  public   java.sql.Connection   connectByJdbc(String   userId,String   password)   
  {     
  java.sql.Connection   conn=null;   
  try 
  { 
  Class.forName(sDBDriver); 
  conn   =   DriverManager.getConnection(sConnStr,userId,password); 
  } 
  catch   (Exception   e)   
  { 
  System.out.println("ERROR:"+e.getMessage());   
  }   
  return   conn; 
  } 
  } 
  这种方式运用起来比较灵活,简单,具有较强的移植性和适用性。只要注意连接字符串"jdbc:oracle:thin:@10.1.4.199:1521:ora199"中具体参数的设置即可 
  3、JdbcOdbc桥方式 
  先通过管理工具中的数据源来添加本地对Oracle数据库的连接,然后通过以下的数据库连接类,在本地通过JdbcOdbc桥方式获得Oracle数据库连接。 
  /** 
  *   在本地获得数据库连接 
  */ 
  
  package   com.j2ee.db; 
  
  import   java.util.*; 
  import   java.sql.*; 
  import   javax.sql.*; 
  import   java.io.*; 
  import   oracle.jdbc.driver.*;   
  import   javax.naming.*;         
  
  /** 
  *   通过JdbcOdbc桥方式获得Oracle数据库连接 
  */ 
  public   class   DbConnection   
  {   
      /** 
      *   
      */ 
      public   DbConnection()   
      { 
      } 
      
      /** 
      *   获得Oracle数据库连接   
      */ 
      public   java.sql.Connection   connectDbByJdbcOdbcBridge()   
      {     
      java.sql.Connection   conn=null;     
      try 
      { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      con=DriverManager.getConnection("jdbc:odbc:ora199","sr","sr"); 
      } 
      catch   (Exception   e)   
      { 
              System.out.println("ERROR:"+e.getMessage());   
      }   
      return   conn; 
      } 
  } 
  在getConnection方法中第一个参数"jdbc:odbc:ora199"   中的"ora199"为本地ODBC数据源的数据源名称,第二个参数和第三个参数分别为Oracle的用户名和口令。 
  二、通过连接池获得Oracle数据库连接 
  这部分主要讲述在iPlanet   Application   Server   6.5和Sun   Java   System   Application   Server   7中Oracle数据库连接池的配置,以及在应用中如何通过连接池获得数据库的连接。 
  1、iPlanet   Application   Server   6.5连接池的配置 
  先打开iPlanet   Application   Server   6.5的管理控制台,选中"database"面板,再选择"External   JDBC   Drivers"选项后,点击"Add…"按钮,在弹出的对话框中,添加一个名为"ora-type4"的JDBC   Driver。 
    
  Driver   Classpath:该参数填写classes12.zip文件的物理路径。 
  然后在"External   JDBC   DataSources"中选择"Add…",在弹出的对话框中添加一个JNDI名称为"credit2"的数据源。 
    
  DriverType:选择刚添加好的"ora-type4"; 
  Datasource:ora199,为Oracle数据库服务名; 
  Datasource:ora199,为Oracle数据库服务名; 
  Connection   Pool   Parameters:图中显示的是缺省设置,可以根据自己环境情况来更改这些设置。 
  保存完设置后,在"DataSource   Selection   Box"中,选择刚添加的"credit2"数据源,再选择"Vendor   Specific   Properties"按钮。在对话中添加一个URL属性。 
    
  至此,iPlanet   Application   Server   6.5中的数据库连接池配置完毕,重起服务使之生效。 
  2、Sun   Java   System   Application   Server   7连接池的配置 
  在配置之前将classes12.zip文件置于…/server1/lib目录下。通过浏览器的4848端口打开Sun   Java   System   Application   Server   7的管理界面,选择"server1"->"JDBC"->   "Connection   Pools"下的"New…" 
    
  添加一个名称为"MyConnectionPool"的Oracle数据库连接池。"Next"下一步。 
    
  在"General"中填写"Datasource   Classname"。 
    
  在"Properties"中将不需要的属性删除,同时添加"URL"属性。 
  "dataSourceName"中填写Oracle数据库服务名。 
  以下连接池的缺省设置,可以根据自己环境的情况作相应的调整。 
    
  选择"Finish"完成连接池的设置。 
  下一步为"MyConnectionPool"连接池创建一个JNDI,以便应用程序能够通过该名称获得连接池中的连接。   "server1"->"JDBC"->   "JDBC   Resources"下的"New…" 
    
  至此,Sun   Java   System   Application   Server7中的数据库连接池配置完毕,重起服务使之生效。 
  3、通过连接池获得连接 
  以上在iPlanet   Application   Server   6.5和Sun   Java   System   Application   Server7中配置的连接池都可以通过以下的数据库连接类,从连接池中获得Oracle数据库连接。 
  /** 
  *   从连接池中获得数据库连接 
  */ 
  
  package   com.j2ee.db; 
  
  import   java.util.*; 
  import   java.sql.*; 
  import   javax.sql.*; 
  import   java.io.*; 
  import   oracle.jdbc.driver.*;   
  import   javax.naming.*;         
  
  /** 
  *   通过连接池方式获得Oracle数据库连接 
  */ 
  public   class   DbConnection   
  {   
      /** 
      *   
      */ 
      public   DbConnection()   
      { 
      } 
      
      /** 
      *   获得Oracle数据库连接   
      */ 
      public   java.sql.Connection   connectDbByConnectionPool()   
      {     
      java.sql.Connection   conn=null;     
      try 
      { 
              Context   ctx   =   new   InitialContext(); 
                      DataSource   ds   =   (DataSource)ctx.lookup("jdbc/credit2"); 
              conn=ds.getConnection(); 
      } 
      catch   (Exception   e)   
      { 
              System.out.println("ERROR:"+e.getMessage());   
      }   
      return   conn; 
      } 
  } 
  4、使用连接池的优点使用连接池的优点主要体现在两个方面:对数据库的连接统一进行配置、管理、监控,以及对数据库连接池的参数进行优化调整,同时对应用中没有关闭或其他原因造成没有关闭的数据库连接由连接池统一进行管理。便于应用的移植和后端数据库的切换,因为在应用中通过统一的JNDI获得数据库的连接,而具体连接的是哪一台机器上的数据库与应用无关。
分享到:
评论

相关推荐

    java oracle 数据库 连接池 小例子

    总的来说,这个小例子向我们展示了Java应用程序如何利用C3P0连接池高效地管理Oracle数据库连接,提供了一个可扩展和可配置的解决方案。通过合理配置连接池参数,可以有效地优化数据库访问性能,降低系统的资源消耗。

    JAVA 使用数据库连接池连接Oracle数据库全代码

    通过上述步骤,我们可以在Java应用中高效地管理和使用Oracle数据库连接。使用DBCP数据库连接池不仅可以减少频繁创建和销毁数据库连接所带来的开销,还可以更灵活地根据应用程序的需求动态调整连接池的大小,从而提高...

    Tomcat_6.0配置oracle数据库连接池

    本文将详细讲解如何在Tomcat 6.0中配置Oracle数据库连接池。 首先,我们要明白连接池的基本原理。数据库连接池管理数据库连接,避免每次需要连接时都创建新的连接,而是复用已存在的连接,这样可以显著减少数据库...

    tomcat6.0+oracle数据库连接池

    本篇文章将深入探讨如何在Tomcat 6.0应用服务器上配置Oracle数据库连接池,以及如何使用第三方DBCP(Database Connection Pool)库来实现这一目标。DBCP是一个开源的Java连接池实现,它为应用程序提供了一种有效管理...

    weblogic+Oracle数据库连接池的配置

    ### WebLogic与Oracle数据库连接池配置详解 #### 一、WebLogic Server 7.0 + Oracle JDBC Pool/DataSource配置步骤 在进行WebLogic Server 7.0与Oracle数据库的连接池配置时,需要确保以下几个方面的正确设置: #...

    oracle数据库连接池源码

    JDBC连接池 用JAVA写的连接数据库的代码 JDBC连接池 用JAVA写的连接数据库的代码

    Tomcat下对Oracle数据库连接池数据源的配置

    在IT领域,数据库连接池是优化应用程序性能的关键组件,它能有效地管理数据库连接,避免频繁地创建和销毁连接,从而提高系统的效率。本教程将详细解释如何在Tomcat服务器上配置Oracle 10g数据库的连接池数据源。 ...

    数据库连接池查询

    ### 数据库连接池查询知识点详解 #### 一、数据库连接池概述 数据库连接池是一种用于管理数据库连接的技术,它能够预先创建多个数据库连接,并将这些连接保存在一个池中供应用程序重复使用,从而避免了频繁创建和...

    连接池管理连接oracle数据库

    这是用连接池技术管理连接oracle数据库的工具类代码,如果想连接MySQL,直接修改配置文件即可。

    数据库连接池在Oracle数据库中的实现.pdf

    在使用JDBC实现Oracle数据库连接池时,通常会设计一个管理类如`DBConnectionManager`,这个类负责维护连接池的生命周期,包括初始化、获取连接、释放连接以及关闭所有连接。例如,`getInstance()`方法用于获取连接池...

    Spring boot连接oracle数据库JDBC配置步骤

    使用以上配置后,可以使用 Spring Boot 的测试工具来测试数据库连接是否正常。例如,可以使用 Spring Boot 的 `JdbcTemplate` 来执行一个简单的查询操作: ```java @RestController public class ...

    数据库连接池在Oracle数据库中的实现.docx

    数据库连接池在Oracle数据库中的实现是一项关键的技术优化策略,它主要解决了基于JDBC(Java Database Connectivity)的应用程序在处理数据库连接时的效率问题。在传统的数据库应用中,每次请求都需要建立一个新的...

    java web数据库连接池代码

    一、Oracle数据库连接池 在Java Web开发中,连接Oracle数据库需要使用Oracle的JDBC驱动程序。首先,我们需要加载Oracle的JDBC驱动程序: Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 然后...

    Delphi免客户端直连Oracle数据库

    在描述中提到的“delphi10.01完整代码”,意味着这是一个使用Delphi 10.01版本编写的程序示例,它展示了如何在没有第三方组件的情况下连接到Oracle数据库。"oci.dll、oraocci11.dll、oraociei11.dll、orasql11.dll...

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

    自定义数据库连接池还可以考虑支持多种数据库类型,例如SQL Server、MySQL、Oracle等,通过泛型或接口实现对不同数据库的适配。 理解并掌握C#高效数据库连接池的实现,对于开发高性能的数据库应用至关重要。通过...

    Tomcat的数据库连接池设置与应用

    本文将详细介绍如何在Tomcat中配置和使用Oracle数据库连接池。 #### 方案一:简易方式 ##### 配置步骤 1. **放置Oracle驱动包**:首先,需要将Oracle的驱动程序包(例如ojdbc6.jar)放置到web应用的`WEB-INF/lib`...

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

    数据库连接池是现代应用程序开发中的重要组成部分,尤其是在处理大量数据交互的应用中,它极大地提高了数据库操作的效率和系统的稳定性。本资源"03-数据库连接池驱动"包含了三种常用的数据库连接池驱动:C3P0、Druid...

    数据库连接池 java 整理

    要使用数据库连接池连接到Oracle数据库,首先需要在项目中添加Oracle JDBC驱动的依赖。通常,这可以通过Maven或Gradle等构建工具完成。例如,在Maven的pom.xml文件中,可以添加以下依赖: ```xml <groupId>...

    oracle 和mysql数据库的连接池一起下载

    Oracle数据库连接池通常指的是Oracle Data Provider for .NET (ODP.NET) 中的Oracle Connection Pooling。Oracle连接池可以有效地减少数据库的开销,通过复用已存在的数据库连接而不是每次请求时创建新的连接。当一...

Global site tag (gtag.js) - Google Analytics