动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库学院 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息



本月文章推荐
.记几个容易忘的oracle 函数.
.数据库的设计: 数据库设计范式.
.Red Hat Enterprise Linux AS 3上.
.在EXP出数据时遇到ORA-00942的问.
.ORACLE Developer/2000 编程技巧.
.DBA生存之四大守则.
.抛砖引玉 -- 对集合的整理资料.
.案例学习Oracle错误:TNS-00510.
.经典的问题与解答(3).
.转储设备使数据库备份更具可见性.
.在sqlplus中批量执行sql命令.
.Oracle性能究极优化 中.
.SCO UnixWare 7.1.3下安装Oracle.
.这是oracle公司对授权用户开放的.
.oracle8i-系统结构的组件(入门篇.
.业务处理执行语言BPEL简介.
.我的备份与恢复实验 (归档模式下.
.一个关于如何解决复杂编码的挑战.
.ORACLE的PL/SQL二.
.Oracle中的数据字典技术初级入门.

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

发表日期:2008-2-9 |



  在J2EE应用程序开发中,应用程序与数据库连接的建立是我们经常碰到的问题之一。
在这里我主要谈谈在本地应用程序中通过OCI方式、thin方式和JdbcOdbc桥方式连接Oracle数据库,在iPlanet Application Server 6.5和Sun ONE 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 ONE Application Server 7中Oracle数据库连接池的配置,以及在应用中如何通过连接池获得数据库的连接。

  1、iPlanet Application Server 6.5连接池的配置

  先打开iPlanet Application Server 6.5的治理控制台,选中"database"面板,再选择"External JDBC Drivers"选项后,点击"Add…"按钮,在弹出的对话框中,添加一个名为"ora-type4"的JDBC Driver。

J2EE应用中与Oracle数据库的连接(图一)


  Driver Classpath:该参数填写classes12.zip文件的物理路径。

  然后在"External JDBC DataSources"中选择"Add…",在弹出的对话框中添加一个JNDI名称为"credit2"的数据源。

J2EE应用中与Oracle数据库的连接(图二)

  DriverType:选择刚添加好的"ora-type4";

  Datasource:ora199,为Oracle数据库服务名;

  Connection Pool Parameters:图中显示的是缺省设置,可以根据自己环境情况来更改这些设置。

  保存完设置后,在"DataSource Selection Box"中,选择刚添加的"credit2"数据源,再选择"Vendor Specific Properties"按钮。在对话中添加一个URL属性。

J2EE应用中与Oracle数据库的连接(图三)

  至此,iPlanet Application Server 6.5中的数据库连接池配置完毕,重起服务使之生效。
  2、Sun ONE Application Server 7连接池的配置

  在配置之前将classes12.zip文件置于…/server1/lib目录下。通过浏览器的4848端口打开Sun ONE Application Server 7的治理界面,选择"server1"->"JDBC"-> "Connection Pools"下的"New…"

J2EE应用中与Oracle数据库的连接(图四)


  添加一个名称为"MyConnectionPool"的Oracle数据库连接池。"Next"下一步。

J2EE应用中与Oracle数据库的连接(图五)

  在"General"中填写"Datasource Classname"。

J2EE应用中与Oracle数据库的连接(图六)

  在"Properties"中将不需要的属性删除,同时添加"URL"属性。

  "dataSourceName"中填写Oracle数据库服务名。

  以下连接池的缺省设置,可以根据自己环境的情况作相应的调整。

J2EE应用中与Oracle数据库的连接(图七)

  选择"Finish"完成连接池的设置。

  下一步为"MyConnectionPool"连接池创建一个JNDI,以便应用程序能够通过该名称获得连接池中的连接。 "server1"->"JDBC"-> "JDBC Resources"下的"New…"

J2EE应用中与Oracle数据库的连接(图八)

  至此,Sun ONE Application Server7中的数据库连接池配置完毕,重起服务使之生效。


  3、通过连接池获得连接

  以上在iPlanet Application Server 6.5和Sun ONE 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获得数据库的连接,而具体连接的是哪一台机器上的数据库与应用无关。

上一篇:Oracle分页新招 人气:721
下一篇:JDBC+Hibernate将Blob数据写入Oracle 人气:542
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-9 顶级域名交易系统 v3.0 完整版
2008-7-9 ACTCMS网站管理系统 v2.0 Build
2008-7-9 Roclog v3.1.4 build 20080706
2008-7-9 乐彼网上开店系统(56770 Eshop)
2008-7-9 深度学习alexa排名提升专家 v1.0
2008-7-9 BBSXP 2008 Build 8.0.5 正式版
2008-7-9 一句话快速信息发布系统 修正完美
2008-7-9 ACTCMS网站管理系统 v2.0 Build
2008-7-9 乐涛涛留言本 08版
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 GoodCalculator2.0版固件计算器
2008-7-5 RepoName源地址搜索工具 v1.21b
2008-7-5 AgileMessenger即时通讯工具 v1.
2008-7-5 TouchCopy多媒体管理软件 v3.13完
2008-7-5 VideosTone视频铃声 v1.1汉化破解
2008-7-5 TouchPad触摸板 v4.44破解版
2008-7-5 VideosTone破解补丁 v1.0
2008-7-5 Feeds GoogleReader客户端 v0.4.3


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号