`

终于实现动态加载JDBC驱动-oralce

阅读更多
终于实现动态加载JDBC驱动-oralce
2007-06-08 20:56

配置文件:

oracle.properties

jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.2.67:1521:xt
jdbc.user=sa
jdbc.password=sa

连接数据库类:

//package com.conn;
//
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Driver;
import java.util.Properties;

public class Conn2 {
private String dbUrl=null;
private String theUser=null;//用户名
private String thePw =null;//密码
private Connection c=null;//
private Statement conn;
private ResultSet rs=null;
private String driver = null;
private File jdbcDriverJarFileLocation = new File("d:\\oracle\\ora92\\jdbc\\lib\\ojdbc14.jar");

public Conn2(){
     try {
      //ORACLE的JDBC驱动类
      Properties pro = new Properties();
      try {
       pro.load(new FileInputStream("oracle.properties"));
      } catch (FileNotFoundException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
      } catch (IOException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
      }
      //System.out.println(pro.getProperty("jdbc.driver"));
      dbUrl = pro.getProperty("jdbc.url");
      theUser=pro.getProperty("jdbc.user");
      thePw=pro.getProperty("jdbc.password");
      driver=pro.getProperty("jdbc.driver");
      System.out.println("1 "+driver);
      try {
       URL jdbcDriverURL = jdbcDriverJarFileLocation.toURL();
       URL[] urls = new URL[1];
       urls[0] = jdbcDriverURL;
       URLClassLoader urlclassLoader = new URLClassLoader( urls,ClassLoader.getSystemClassLoader());  
       try {
        java.sql.Driver driverd = (java.sql.Driver)urlclassLoader.loadClass(driver).newInstance();
        System.out.println(driverd.toString());
        Properties      props      =      new      Properties();   
                       props.setProperty("user",      theUser);   
                       props.setProperty("password", thePw     );
        try {
         c = driverd.connect(dbUrl, props);
        } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
        }
     
       } catch (InstantiationException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }//
    
    
      } catch (MalformedURLException e1) {
       // TODO Auto-generated catch block
       e1.printStackTrace();
      }
  
      try {
      conn=c.createStatement();
     } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
} catch (ClassNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
}
}
//度曲配置文件。
public ResultSet executeQuery(String sql){
     rs = null;
     try {
      rs = conn.executeQuery(sql);
     } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     return rs;
  
}

public void close(){
     try {
      conn.close();
      c.close();
     } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
  
  
}

public static void main(String[]args){

     //newjdbc.testPorpertiesFile();
     ResultSet newrs;
     //ConnectOracle newjdbc = new ConnectOracle();
     Conn2 newjdbc = new Conn2();
     System.out.println("连接成功");
     newrs = newjdbc.executeQuery("select * from scott.dept");
     try {
      System.out.println("deptno     |     dname      |       loc");
      while(newrs.next()){
    
       System.out.print(newrs.getString("deptno")+"        ");
       System.out.print(newrs.getString("dname")+"      ");
       System.out.println(newrs.getString("loc"));
    
      }
     } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     newjdbc.close();
}
}

 

分享到:
评论

相关推荐

    jdbc-oracle-thinjdbc-oracle-thin

    JDBC-Oracle-Thin 驱动是一种纯 Java 实现的驱动程序,它通过网络协议直接与 Oracle 数据库通信,无需安装额外的客户端软件。这种驱动适用于跨平台环境,并且易于部署和管理。 ##### 1.2 JDBC-Oracle-Thin 的优势 ...

    sqlserver2005-jdbc驱动、sqlserver2008-jdbc驱动、mysql-jdbc驱动、oracle驱动-

    本压缩包包含了适用于不同数据库系统的JDBC驱动,包括sqlserver2005-jdbc驱动、sqlserver2008-jdbc驱动、mysql-jdbc驱动以及oracle驱动,这使得开发者能够方便地与这些数据库进行通信。 1. SQL Server JDBC驱动: ...

    oracle12 jdbc驱动包

    Oracle 12c JDBC驱动包是Oracle数据库与Java应用程序之间的桥梁,它允许Java开发者通过编写Java代码来访问和操作Oracle数据库。在Java编程环境中,JDBC(Java Database Connectivity)是标准API,用于连接各种类型的...

    JDBC驱动-oracle 10g,sqlserver 2008还带一个Log4j

    1. 加载驱动:使用Class.forName()方法加载特定数据库的JDBC驱动。 2. 建立连接:通过DriverManager.getConnection()方法,输入数据库URL、用户名和密码建立连接。 3. 创建Statement或PreparedStatement:Statement...

    jdbc--drivers.zip_ jdbc oracle_JDBC ORACLE_oracle

    - 加载驱动:通过Class.forName()方法加载JDBC驱动。 - 建立连接:使用DriverManager.getConnection()方法建立与数据库的连接。 - 创建Statement或PreparedStatement对象:执行SQL语句。 - 执行查询:调用...

    JDBC驱动 for oracle9i-9.0.1

    3. 使用`Class.forName()`方法加载JDBC驱动,例如:`Class.forName("oracle.jdbc.driver.OracleDriver");` 4. 创建数据库连接,使用`java.sql.DriverManager.getConnection()`方法,传入数据库URL、用户名和密码。 5...

    最新Oracle_11g JDBC驱动包

    Oracle JDBC驱动包是用于Java应用程序与Oracle数据库之间通信的重要组件。它遵循Java Database Connectivity (JDBC) API标准,使得开发者可以使用Java语言高效地访问Oracle数据库。本文将深入探讨Oracle JDBC驱动的...

    Jdbc-Oracle-jar 下载

    标题中的“Jdbc-Oracle-jar 下载”指的是与Java数据库连接(JDBC)相关的Oracle数据库驱动程序包,这些驱动程序通常以jar(Java Archive)文件的形式存在。Oracle JDBC驱动程序允许Java应用程序与Oracle数据库进行...

    jdbc-driver(Oracle-Mysql).rar jdbc 驱动

    1. 加载驱动:使用Class.forName()方法加载JDBC驱动的类。 2. 获取连接:使用DriverManager.getConnection()方法,提供数据库URL、用户名和密码来创建数据库连接。 3. 创建Statement或PreparedStatement对象:用于...

    JDBC驱动 for oracle9i-9.2.0.1

    2. **建立连接**:使用`Class.forName()`方法加载JDBC驱动,然后通过`DriverManager.getConnection()`创建数据库连接,通常需要提供数据库URL、用户名和密码。 3. **创建Statement或PreparedStatement**:通过连接...

    JDBC驱动(Oracle、MySql)

    Oracle驱动是针对Oracle数据库的JDBC驱动程序,它允许Java应用程序直接访问Oracle数据库。Oracle JDBC驱动分为两类: Thin驱动和 Thick驱动。Thin驱动是一种纯Java驱动,无需中间件,直接通过网络协议与数据库通信,...

    达梦数据库jdbc连接

    1. `dm8-oracle-jdbc16-wrapper`:这是一个针对达梦数据库的JDBC驱动包装器,它可能模仿了Oracle JDBC驱动的接口和行为,使得在使用达梦数据库时,代码可以与使用Oracle数据库时保持一致,便于迁移和兼容。...

    oracle 10g jdbc 驱动

    在上述示例中,`Class.forName()`方法用于加载JDBC驱动,`DriverManager.getConnection()`用于创建数据库连接,`Statement`对象用于执行SQL语句,而`ResultSet`则用于获取查询结果。 总结来说,Oracle 10g JDBC驱动...

    JDBC驱动包-Mysql/Oracle

    Oracle的JDBC驱动则包括了 Thin 驱动和 OCI(Oracle Call Interface)驱动,分别适用于纯Java环境和需要与Oracle客户端库交互的情况。 1. MySQL JDBC驱动: - Connector/J是MySQL官方提供的开源JDBC驱动,符合JDBC...

    oracle-jdbc-12.2.0.1.zip

    Oracle JDBC驱动主要有四种类型: Thin、 Thick、JDBC-ODBC Bridge和Universal Driver,其中 Thin 驱动是最常用的一种,因为它是一种轻量级的纯Java实现,无需在客户端安装Oracle数据库客户端软件。 ojdbc8-资源....

    jdk7_jdk8-oracle19C所需驱动.zip

    在本案例中,"jdk7_jdk8-oracle19C所需驱动.zip"是一个压缩包,包含了适用于Java 7和Java 8的Oracle JDBC驱动,用于连接到Oracle 19C数据库。 Oracle JDBC驱动,也被称为Oracle Thin Driver或ojdbc驱动,是Oracle...

    jdbc驱动(Oracle-sqlserver-db2-mysql-h2-sqlite)

    标题中的"jdbc驱动(Oracle-sqlserver-db2-mysql-h2-sqlite)"指的是针对不同数据库系统的一系列JDBC驱动程序。以下是对这些数据库系统及其对应的JDBC驱动的详细解释: 1. **Oracle**:Oracle数据库是全球领先的商业...

    Oracle 11g R2 jdbc驱动包

    Oracle 11g R2 JDBC驱动包是Oracle数据库与Java应用程序之间进行通信的重要组件,它允许Java开发者在Java环境中执行SQL语句,处理数据库事务,以及实现其他与数据库相关的功能。JDBC(Java Database Connectivity)...

    jdbc驱动(含oracle mysql)

    本资源包含Oracle和MySQL两种常用数据库的JDBC驱动,适用于Java开发项目。 Oracle JDBC驱动: Oracle JDBC驱动分为 Thin 和 OCI 两种类型。Thin 驱动是一种纯Java实现,无需Oracle客户端即可运行,适合远程连接。而...

    Oracle11G_JDBC驱动【ojdbc6.jar】.rar

    Oracle 11g JDBC驱动,即ojdbc6.jar,是Oracle公司提供的用于Java应用程序与Oracle数据库之间进行数据交互的关键组件。JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准API,它使得Java...

Global site tag (gtag.js) - Google Analytics