`
isiqi
  • 浏览: 16004422 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

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、使用连接池的优点使用连接池的优点主要体现在两个方面:对数据库的连接统一进行配置、管理、监控,以及对数据库连接池的参数进行优化调整,<br>同时对应用中没有关闭或其他原因造成没有关闭的数据库连接由连接池统一进行管理。便于应用的移植和后端数据库的切换,<br>因为在应用中通过统一的JNDI获得数据库的连接,而具体连接的是哪一台机器上的数据库与应用无关。

分享到:
评论

相关推荐

    J2EE应用中与Oracle数据库的连接.rar_oracle

    本文详细介绍了在J2EE中各种与Oracle数据库连接的方法,和他们之间的优缺点。

    怎样实现Java与oracle数据库的连接

     JNDI全名叫做Java命名和目录接口(Java Naming and Directory Interface ,JNDI)是用于从Java应用程序中访问名称和目录服务的一组API,JNDI是J2EE的核心技术之一,JNDI的功能简单说是可以简单的方式去查找某种...

    Oracle9i备课笔记——吕海东

    (2) Oracle数据库的市场应用的广泛性。 (3) Oracle数据库的跨平台性,与Java语言对比说明。 (4) Oracle对大量数据管理的性能。数据的存储,修改,查询的性能是应用系统必须要考虑的首要因素。 1.3 Oracle数据库的...

    中国移动计费项目eclipse+j2ee

    本系统采用struts+spring+hibernate架构,重在讲述三者结合...(3)将spring配置文件applicationContext.xml中数据库连接地址改为您自已的地址。 (4)部署到tomcat服务器中即可运行(jdk1.5以上). 用户名和密码均为:admin

    基于JAVA JSP企业电子投票系统的毕业设计,BEA System、Sybase、Oracle以及Fujitsu等等

    正是认识到J2EE平台作为一种可扩展的、全功能的平台,可以将关键的企业应用扩展到任何Web浏览器上并可适合多种不同的Internet数据流、可连接到几乎任何一种传统数据库和解决方案、使企业经理根据多家企业所提供的...

    xmljava系统源码-BJAF3.x:甲壳虫J2EE应用框架第3版,功能强大,简单易用

    支持各种数据库的分页功能(包括:Mysql/Oracle/SqlServer/Sysbase/PostgreSql/FireBird/H2等) 支持数据库序列功能 组合查询功能,无需动态拼接查询条件,提高开发效率 透明防止SQL注入 表字段查询透明脱敏 NOSQL...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    我们掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、数据库技术等国家IT认证。...

    基于J2EE框架的个人博客系统项目毕业设计论...

    我们掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、数据库技术等国家IT认证。...

    Oracle WebLogic 11g 安装部署文档

    对于客户是不可见的,为连接在它上面的客户提供服务。 WebLogic 最常用的使用方式是为在 internet 或 intranet 上的 Web 服务提供安全、数据驱动 的应用程序。 WebLogic 对 J2EE 架构的支持: ...

    XX_weblogic安装部署手册for oracle 11g

    WebLobicServer是美国BEA公司开发的一个业界领先的应用服务器。是SUNJ2EE 的 纯java 实现。WebLogic长期以来一直被认为是市场上...SUN公司的J2EE 架构是为企业级提供的一种支持分布式应用的整体框架。为集成后 端系统

    OnlineBookStore.rar

    要求实现一个网上书店的基本功能,要求具有前端(用户)和后端(管理)功能,基于Web运行方式。...编程工具可以是MS .NET(C#)或者J2EE 二选一,数据库可以是SQL Server、DB2、Oracle、Mysql、PostgreSQL之一。

    weblogic平台J2EE调优策略

    第一章 应用程序调优 1.1.1 通用代码调优 1.1.2 减小没有必要的操作 1.1.3 使用合适的类型 1.1.4 尽量使用pool,buffer和cache 1.2 JDBC代码调优 1.2.1 严格资源使用 1.2.2 实用技巧 1.2.3 优化SQL语句 1.3 Web代码...

    [计算机毕设]基于jsp的企业电子投票系统设计与实现(源代码+项目报告+开题报告+外文翻译+文献综述).zip

    正是认识到J2EE平台作为一种可扩展的、全功能的平台,可以将关键的企业应用扩展到任何Web浏览器上并可适合多种不同的Internet数据流、可连接到几乎任何一种传统数据库和解决方案、使企业经理根据多家企业所提供的...

    C#代码自动生成机

    C#代码自动生成系统主要采用面对对象的开发方法,借鉴了J2EE提出的多层...支持:SQL和ORACLE数据库 系统要求:Win98 以上 数据访问方式:ADO CPU: 233 内存:64M 作者:刘晓东 [ http://www.0dian.net ] 零点

    仓库物品管理系统设计方案书.doc

    PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程 序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增...

    jquery-miniui:对官方的 MiniUI 进行扩展

    将项目部署到 Tomcat 或其他 J2EE 应用服务器中,并启动应用服务器; 在浏览器中访问演示程序。 修改/扩展内容 将演示程序中的 Java 类中加上对泛型的支持,避免编译时出现很多警告信息; 演示程序增加对 Oracle ...

    支持多数据库的ORM框架ef-orm.zip

    该框架对应用环境、连接池、 是否为J2EE应用等没有特殊要求。可以和EJB集成,也可与Spring集成,也可以单独使用。整个框架只有两个JAR包,模块和功能都较为轻量。依赖少 整个框架只有三个jar库。间接依赖仅有...

    J2EE spring mvc mybatis bootstrap HTML5 后台框架 控制台 oracle版本_spring3.0

    数据库连接池 阿里的 druid。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势,支持并发 10.加入安全框架 shiro (登录授权)(session管理) 11.根据汉字 解析汉字的全拼(拼音)和首字母(导入excel到用户表,...

    openi-1.3.0-i18n-pack

    1.1.1.1. OPENI基本介绍  标准J2EE WEB应用软件架构  支持以下三种数据源创建报表  多维数据库(OLAP Servers)  关系型数据库(RDBMS Servers,如:MSSQL,MYSQL,ORACLE等)  数据挖掘服务器(|...

    论文研究 - 省级气象观测数据传输综合监测模型的设计与应用

    该系统使用Java作为编程语言,并遵循MVC规范和敏捷开发概念,集成了J2EE,Hibernate,Quartz,Snmp4j和Slf4j框架,并使用Oracle数据库作为数据存储载体。 系统开发使用四项关键技术,包括简单的网络管理协议,网络...

Global site tag (gtag.js) - Google Analytics