2011-11-04 10 views
9

Sto scrivendo un accessor del database in Java. Il database è in Oracle 11g, di cui non ho assolutamente familiarità, e ho JDK 1.6.cosa jar jdbc usare con oracle 11g e jdk 1.6 e come connettersi al db stesso

  1. Will ojdbc4.jar fare per il mio programma? Non è consentito connettersi a Internet in ufficio e non riesco a scaricare ojdbc6.jar, che ho letto è più compatibile con la mia configurazione.
  2. Quali stringhe devo inserire in Class.forName (driver String) e DriverManager.getConnection (String connectionURL)? Non conosco la stringa del driver e l'URL di connessione poiché (naturalmente) sembrano molto diversi da quelli di MS SQL Server.

risposta

18
  1. Oracle fascio il vaso con l'installazione del client o server Oracle e può essere trovato in $ORACLE_HOME/jdbc/lib/ojdbc6.jar. Lo uso sempre.

  2. Il nome della classe driver è oracle.jdbc.OracleDriver e l'URL è jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE.

Ecco un esempio (tratto da here):

import java.sql.*; 
class Conn { 
    public static void main (String[] args) throws Exception 
    { 
    Class.forName ("oracle.jdbc.OracleDriver"); 

    Connection conn = DriverManager.getConnection 
    ("jdbc:oracle:thin:@//localhost:1521/orcl", "scott", "tiger"); 
         // @//machineName:port/SID, userid, password 
    try { 
    Statement stmt = conn.createStatement(); 
    try { 
     ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION"); 
     try { 
     while (rset.next()) 
      System.out.println (rset.getString(1)); // Print col 1 
     } 
     finally { 
      try { rset.close(); } catch (Exception ignore) {} 
     } 
    } 
    finally { 
     try { stmt.close(); } catch (Exception ignore) {} 
    } 
    } 
    finally { 
    try { conn.close(); } catch (Exception ignore) {} 
    } 
    } 
} 
+3

1) Class.forName non è necessario. 2) Troppi tentativi/catture. È sufficiente chiudere la connessione e chiudere automaticamente tutto 3) Non sono sicuro, ma nel tuo caso orcl non è un servizio, quindi l'url dovrebbe essere jdbc: oracle: thin: @ // localhost: 1521: orcl – damluar

+0

Grazie ! Ad ogni modo, il token di servizio è facoltativo? O può essere il nome del database a cui mi sto collegando? –

+0

@matkiros Sì, è opzionale. – trojanfoe

6

Il file JAR ufficiale in combinazione con JDK 1.6 è ojdbc6.jar. Ma ojdbc4.jar dovrebbe funzionare per la maggior parte delle applicazioni.

stringhe di connessione Typicall sono:

jdbc:oracle:thin:user/[email protected]:port:SID 
jdbc:oracle:thin:user/[email protected]//server:port/XE 
jdbc:oracle:thin:user/[email protected]:SID 
Problemi correlati