终于实现动态加载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();
}
}

 

你可能感兴趣的:(java,oracle,sql,.net,jdbc)