Oracle数据库连接

原创 2004年07月10日 10:34:00

  一、本地通过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。

122020.jpg

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

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

122021.jpg

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

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

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

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

122022.jpg

  至此,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…"

122023.jpg

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

122024.jpg

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

122025.jpg

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

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

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

122027.jpg

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

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

122028.jpg

  至此,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 数据库连接工具

公司内部用着各种工具, 我见到新的工具, 都会去尝试一下. 主要的几款如下: 1. sql*plus 这是Oracle 数据库的命令行工具, 功能强大, 但是学习成本高, 要记住非常多的命令...
  • zhangyu19881125
  • zhangyu19881125
  • 2015年03月18日 09:30
  • 5754

Oracle数据库连接测试

一个测试数据库连接的类,自己留着以后方便用。      DBTest.java   测试类 Java代码   import java.sql.*;   public cla...
  • chjskarl
  • chjskarl
  • 2013年02月22日 11:19
  • 906

简单的数据库连接工厂实现

我看过很多数据库连接的代码,大部分都存在问题,有的甚至完全不可用,这里给出一个数据库连接工厂,给出了jdbc1和jdbc2的实现,仅供参考!public class ConnectionFactory...
  • treeroot
  • treeroot
  • 2004年09月24日 12:26
  • 3120

PLSQL 安装+配置( Oracle数据库连接工具 )

1.找到免安装版本 PLSQL  解压到自己想放的位置 (比如  D:\ChengXu\PLSQL\PLSQL) 2.配置环境变量 :   系统变量中新建,变量名:TNS_ADMIN     变量...
  • u011314442
  • u011314442
  • 2017年06月24日 14:13
  • 612

查看Oracle数据库的连接情况

定时对数据库连接情况进行减产,观察会话数目是否正常。建立了过多的数据链接,消耗数据库的资源 对一些挂掉的连接,需要手动“kill” sid   sessionId serial#  序列号,和...
  • qq_27851525
  • qq_27851525
  • 2016年08月17日 15:56
  • 1438

oracle数据库连接固定语句

package cn.mldn.lxh.note.dbc;import java.sql.*;public class DataBaseConnection { private String DBDR...
  • sisong
  • sisong
  • 2008年03月06日 09:05
  • 4336

Jboss配置Oracle数据库连接池

Jboss配置Oracle数据库连接池     这两天在做把系统从 weblogic+oracle 转移到 Jboss+sqlServer上;     之前一点都不熟悉Jboss和EJB,所以只有一点...
  • lijackly_lingtu
  • lijackly_lingtu
  • 2007年06月12日 17:50
  • 3271

oracle强制断开数据库用户链接

1、使用系统用户通过plsql或sqlplus登陆oracle 2、查询v$session视图找到需要被kill掉的会话       select * from v$session; 3、通过记...
  • wang_yunj
  • wang_yunj
  • 2015年05月04日 18:09
  • 1598

AOP实现数据库日志打印

最近在学习动态代理,总结之余写了个用AOP实现数据库日志打印的方法,有些地方还不完善,思路仅供参考 定义接口:package Test_Proxy;import java.sql.Connectio...
  • Q34307436
  • Q34307436
  • 2015年06月16日 22:52
  • 328

oracle 连接外部数据库配置

1.开始---oracle---Net Manager 2.进入如下界面 点击本地---------服务器名,出现左侧   +  ,   点击加号 3....
  • ahqierlian
  • ahqierlian
  • 2017年07月26日 19:15
  • 201
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle数据库连接
举报原因:
原因补充:

(最多只允许输入30个字)