公分.net

博客园 首页 新随笔 联系 订阅 管理

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;

posted on 2005-01-09 16:00  wzyu  阅读(1219)  评论(0)    收藏  举报