Desidero connettermi a due diversi database Oracle (uno 8.0.5.0.0 e uno 12c) tramite JDBC. Ho entrambi i driver JDBC che possono connettersi individualmente e correttamente al DB corrispondente tramite semplici applicazioni "ciao mondo". Sotto, ho riunito entrambi in un'unica applicazione Java, che sfortunatamente non funziona più (con entrambi i driver caricati).Utilizzo di più driver JDBC Oracle in un'applicazione Java?
Ho letto questo post: Handle multiple JDBC drivers from the SAME VENDOR. L'opzione 1 menzionata potrebbe essere la strada da percorrere, ma sembra esserci uno dei problemi principali:
Sembra che OracleDataSource
non esiste ancora nel vecchio driver versione 8 e solo è stato introdotto nelle versioni successive (nel Esiste un driver di versione 12c).
Eventuali suggerimenti su come connettersi a questi due database Oracle con una singola applicazione Java e due driver JDBC?
import java.sql.*;
class db {
public static void main (String args []) throws SQLException {
// Oracle 8 connection
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection c1 = DriverManager.getConnection(
"jdbc:oracle:thin:@some-oracle-8-server:port:sid",
"my-user",
"my-password");
Statement s1 = c1.createStatement();
ResultSet r1 = s1.executeQuery ("SELECT banner FROM V$VERSION WHERE banner LIKE 'Oracle%'");
while (r1.next()) {
System.out.println(r1.getString (1));
}
c1.close();
// Oracle 12 connection
Connection c2 = DriverManager.getConnection(
"jdbc:oracle:thin:@some-oracle-12-server:port:sid",
"my-user",
"my-password");
Statement s2 = c2.createStatement();
ResultSet r2 = s2.executeQuery ("SELECT banner FROM V$VERSION WHERE banner LIKE 'Oracle%'");
while (r2.next()) {
System.out.println(r2.getString (1));
}
c2.close();
}
}
Grazie in anticipo!
mm Vorrei utilizzare il driver più recente per entrambe le connessioni e definire solo 2 origini dati separate. La compatibilità con i driver jdbc di AFAIK è abbastanza solida. – BigMike
Sono stupido, ma i driver oracle sono compatibili con le versioni precedenti. Il driver più recente non funziona per il database legacy? – Gimby
Un driver 12c non funziona con un database 8i, no; sono compatibili con le versioni precedenti ma solo fino a un certo punto. Vedere [Domande frequenti JDBC] (http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#01_03) e [Oracle support note 207303.1] (http://support.oracle .com/epmos/faces/DocumentDisplay? id = 207303.1) –