Oracle
 sql >> Database >  >> RDS >> Oracle

Utilizzo di più driver Oracle JDBC in un'applicazione Java?

Se non registri i driver eviti che vengano caricati dallo stesso classloader.

Quindi puoi creare connessioni utilizzando i due diversi driver caricandoli tramite classloader separati:

// Oracle 8 connection
File jar = new File("/path/to/oracle8.jar");
URL[] cp = new URL[1];
cp[0] = jar.toURI().toURL();
URLClassLoader ora8loader = new URLClassLoader(cp, ClassLoader.getSystemClassLoader());
Class drvClass = ora8loader.loadClass("oracle.jdbc.driver.OracleDriver");
Driver ora8driver = (Driver)drvClass.newInstance();

Properties props = new Properties();
// "user" instead of "username"
props.setProperty("user", "my-user");
props.setProperty("password", "my-password");
Connection ora8conn = ora8driver.connect("jdbc:oracle:thin:@some-oracle-8-server:port:sid",props);

Quindi fai lo stesso per il driver Oracle 12.

potresti anche essere in grado di utilizzare ancora il driver "altro" tramite DriverManager , ma non ne sono sicuro.

Ci sono alcuni casi angolari in cui l'accesso a classi specifiche di Oracle diventa un po' complicato, ma in generale puoi usare le connessioni create attraverso questo senza problemi.