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
{
privateString 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获得数据库的连接,而具体连接的是哪一台机器上的数据库与应用无关。
分享到:
相关推荐
本文将深入探讨在J2EE应用中与Oracle数据库连接的各种方法及其优缺点。 一、JDBC(Java Database Connectivity) 1. JDBC Direct Connection(直接连接): - JDBC驱动程序直接与Oracle数据库进行通信,无需中间层...
在J2EE应用程序开发中,连接Oracle数据库是一个关键步骤,这通常涉及到数据库驱动的使用。在给定的压缩包文件中,包含两个重要的驱动文件:`classes12.jar`和`ojdbc14.jar`,它们是Java应用程序与Oracle数据库进行...
在J2EE应用中,数据访问通常通过Java Database Connectivity (JDBC) API来实现。JDBC提供了一组标准的接口和类,使得Java程序可以连接到各种类型的数据库,如MySQL、Oracle、SQL Server等。数据库连接过程通常包括...
在J2EE环境中,我们通常使用JDBC(Java Database Connectivity)作为与Oracle数据库交互的标准接口。 1. **连接Oracle数据库**: 使用JDBC驱动程序,如Oracle JDBC Thin Driver (ojdbc.jar),在Java代码中建立与...
文章中提到的相关文献涵盖了Oracle数据库的创建与配置、与其他数据库(如GE Smallworld)的连接研究、使用VC++和ADO技术访问Oracle,以及基于J2EE的远程数据库连接实现,这些都从不同角度展示了数据库连接和管理的...
Oracle数据库驱动jar包是Java应用程序...总之,Oracle数据库驱动jar包是Java开发者与Oracle数据库交互的基础工具,它们使开发者能够利用Java的强大功能来操作和管理Oracle数据库,从而构建高效、可靠的J2EE应用程序。
标题中的"Oracle&J2EE"表明我们讨论的是两个关键的IT技术:Oracle数据库系统与Java 2 Platform, Enterprise Edition(J2EE)的结合应用。J2EE是Java平台上用于构建分布式企业级应用程序的框架,而Oracle 9i则是...
在SSH框架中,为了实现高效的数据库连接池管理,通常会采用C3P0作为数据源组件。C3P0是一款开放源代码的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。下面是从给定的部分内容中提取到的...
"基于跨平台的Oracle数据库连接研究" 本文对基于跨平台的Oracle数据库连接进行了综合和详细的分析和研究。首先讨论了连接的各种方式及Java实现,分析了其优缺点。针对连接池的缺点提出了采用多连接池、多进程、多...
8. **Oracle与Java集成**:利用JDBC进行数据库连接,学习如何在Java应用中使用Oracle数据库。 通过本教程,你不仅能够掌握Oracle数据库的基础操作,还能深入了解其高级特性和最佳实践,为成为合格的数据库管理员或...
在J2EE应用中,通常使用Servlets作为控制器,EJB(Enterprise JavaBeans)作为模型,JSP(JavaServer Pages)作为视图。 在**J2EE数据库查询**场景中,我们可能使用了JDBC(Java Database Connectivity)来连接和...
7. **性能调优**:了解如何针对WebLogic Server进行性能优化,包括内存设置、线程池配置、数据库连接池调整等,以提高系统的响应速度和处理能力。 通过学习"J2EE 应用与 BEA WebLogic Server",开发者不仅可以掌握...
预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池...
Oracle9i J2EE应用开发指南是一本专为开发者设计的详细教程,旨在帮助他们理解和掌握如何在Oracle数据库平台上构建和部署J2EE(Java 2 Platform, Enterprise Edition)应用程序。Oracle9i是Oracle公司推出的数据库...
在WebSphere应用服务器中,配置数据库连接池是确保高效、稳定的应用运行的关键步骤。本文将深入讲解如何在WebSphere环境中配置针对Oracle、SQL Server、Sybase和MySQL这四种流行数据库的连接池。 首先,进行系统...
J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级分布式应用程序的框架,它提供了服务器端的编程模型和运行环境,支持多种服务,如事务处理、安全、数据库连接等。本资源“J2EE应用...
**集成Hibernate与Oracle**: 在J2EE应用中使用Hibernate连接Oracle数据库,需要在项目的类路径中包含以上提到的jar文件,并在Hibernate的配置文件(如hibernate.cfg.xml)中指定Oracle的JDBC驱动类以及数据库连接的...
在Java项目中,添加此驱动jar包,可以实现与Oracle数据库的连接。 4. **SQL Server JDBC驱动**: SQL Server的JDBC驱动由Microsoft提供,名为`mssql-jdbc.jar`。此驱动支持所有的SQL Server特性,包括最新的SQL ...
在J2EE应用程序开发中,数据访问是核心功能之一,Oracle数据库作为企业级数据库系统,经常被用作存储和管理大量数据的平台。本篇将详细介绍如何在J2EE环境中利用Model2(MVC)架构连接Oracle数据库进行增、删、改、...
Oracle数据库JDBC驱动是Java开发者在构建Java/J2EE应用程序时用于与Oracle数据库进行交互的重要组件。JDBC(Java Database Connectivity)是Java平台中的标准接口,允许Java代码和其他Java应用程序与各种类型的...