您的位置:首页 > 数据库 > Oracle

Java 与 Oracle 数据库的连接

2005-01-09 16:00 501 查看
Java 与 Oracle 数据库的连接

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 = "jdbcracleci8: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;
}
}
在连接字符串 "jdbcracleci8: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 = "jdbcracle:thin:@10.1.4.199:1521ra199";
      }

      /**
      * @param ip,serviceName
      */
      public DbConnection(String ip,String serviceName)
      {
            sConnStr = "jdbcracle: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;
      }
}
这种方式运用起来比较灵活,简单,具有较强的移植性和适用性。只要注意连接字符串"jdbcracle:thin:@10.1.4.199:1521ra199"中具体参数的设置即可。
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("jdbcdbcra199","sr","sr");
        }
        catch (Exception e)
        {
            System.out.println("ERROR:"+e.getMessage());
        }
        return conn;
}
}
在getConnection方法中第一个参数"jdbcdbcra199" 中的"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。

Driver Classpath:该参数填写classes12.zip文件的物理路径。
然后在"External JDBC DataSources"中选择"Add…",在弹出的对话框中添加一个JNDI名称为"credit2"的数据源。

__________________

----------------------------------------

好的东西来得都很迟!

热爱生活!

由 top 在 03-23-2004 15:51 发表:

一个实体的例子:

源码:
import java.sql.*;
import oracle.jdbc.*;
import oracle.sql.CLOB;

/**
*
* 临时数据库连接
*
*/
public class DBConnection {
static final String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
static final String url = "jdbcdbc:AssessSystem";
static final String user = "User";
static final String password = "123456";
static Connection con = null;
public DBConnection() {
}
public static Connection getConnection(){
try{
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
if(con != null)
System.out.println("Connection success !");
return con;
}
catch(Exception e){
System.out.println("Connection failed !");
System.out.println(e.toString());
return null;
}
}
}

__________________

----------------------------------------

好的东西来得都很迟!

热爱生活!

由 hantsy 在 03-25-2004 21:24 发表:

一般用thin方式连接比较好,,,数据库连接的程序还是用dbcp(jndi)比较好。。。

__________________

My blog:http://blog.chinaunix.net/index.php?blogId=1096

由 hantsy 在 03-25-2004 21:32 发表:

/*

* 创建日期 2003-10-29

* Copyright2003 hantsy<hantsy@163.net>

*

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation; either version 2 of the License, or

(at your option) any later version.

*/

package com.demo;

import java.sql.Connection;

import java.sql.SQLException;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;

public class ConnectionPool {

private static String JNDI_NAME = "java/env/jdbcdemo";

private DataSource ds;

private static ConnectionPool mySelf;

private ConnectionPool(DataSource ds) {

this.ds = ds;

}

public static ConnectionPool getInstance() {

try {

if(mySelf == null) {

Context initCtx = new InitialContext();

DataSource ds = (DataSource)initCtx.lookup(JNDI_NAME);

mySelf = new ConnectionPool(ds);

}

return mySelf;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: