I Driver JDBC Di Oracle
I Driver JDBC Di Oracle
Oracle
fornisce
tre
diversi
tipi
di
driver
JDBC
1) JDBC Thin Driver: non necessita di installazione locale di SQL*Net. Indipendente dalla piattaforma, perch contiene una propria versione TCP/IP del protocollo SQL*Net.
2) JDBC OCI: utile per applicazioni Java stand-alone. Richiede uninstallazione locale di SQL*Net (Oracle Client). 3) JDBC KPRB driver (connessione di default): per Stored Procedures Java e JSP residenti su Database JSP. Supportano tutti la medesima sintassi e la stessa interfaccia programmatica.
Oracle necessita di tre diversi driver per supportare diverse opzioni di deploy; tuttavia, dal codice si evince che differiscono solo nel modo usato per collegarsi al database.
importante ricordare che il driver deve essere della versione compatibile con la propria versione di JDK.
"jdbc:oracle:thin:@nome_host:1521:XE";
Perci si nota che il SID da usare per la connessione sempre XE se si usa Oracl e Express; altrimenti, si trova nel file TNSNAMES.ORA: 1. SID_DEL_DB = 2. 3. 4. 5. 6. 7. 8. ) ) (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = nome_host)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)
Un esempio funzionante: TestThin.java. 1. import java.sql.*; 2. class TestThin { 3. 4. 5. public static void main (String args []) throws SQLException { try {
Il Driver OCI.
Il driver JDBC OCI usa la tecnologia OCI (Oracle Call Interface) per interagire con il database. importante usare una versione del driver appropriata per la versione di Oracle Client installata. Questo driver esegue la connessione usando i servizi SQL*Net nativi.
Il driver JDBC OCI consente di chiamare OCI direttamente da Java, fornendo quindi una elevata compatibilit con specifiche versioni di Oracle. Poich usa chiamate a funzioni native, specifico per la piattaforma utilizzata. La stringa di connessione riportata di seguito String url = "jdbc:oracle:oci:@nome_server:1521:SID"; Di seguito riportato un semplice esempio di connessione: 1. import java.sql.*; 2. class TestOCI { 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Connection conn = DriverManager.getConnection ("jdbc:oracle:oci:@localhost:1521:orcl", "hr", "hr"); } public static void main (String args []) throws SQLException { try { Class.forName ("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace();
14. 15.
Si pu ottenere un reference alla connessione corrente chiamando il metodo OracleDriver.defaultConnection(). Si noti che non necessario indicare lURL del database, il nome utente e la password. alt res essenziale ricordare di non chiudere la connessione predefinita. 1. import java.sql.*; 2. class dbAccess { 3. 4. 5. public static void main (String args []) throws SQLException { Connection conn = (new oracle.jdbc.driver.OracleDriver()).defaultConnection(); 6. 7. 8. Statement stmt = conn.createStatement(); ResultSet rset hr.employees"); 9. 10. 11. 12. 13. } } while (rset.next()) System.out.println (rset.getString(1)); stmt.close(); = stmt.executeQuery("select last_name from