Oracle
 sql >> Base de données >  >> RDS >> Oracle

Utilisation de plusieurs pilotes Oracle JDBC dans une seule application Java ?

Si vous n'enregistrez pas les pilotes, vous évitez qu'ils ne soient chargés par le même chargeur de classe.

Ensuite, vous pouvez créer des connexions à l'aide des deux pilotes différents en les chargeant via des chargeurs de classe distincts :

// 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);

Ensuite, faites de même pour le pilote Oracle 12.

Vous pourriez être également capable d'utiliser "l'autre" pilote via DriverManager , mais je n'en suis pas sûr.

Dans certains cas, l'accès à des classes spécifiques à Oracle devient un peu compliqué, mais en général, vous pouvez utiliser les connexions créées sans aucun problème.