Hvis du ikke registrerer driverne, undgår du, at de indlæses af den samme klasseindlæser.
Derefter kan du oprette forbindelser ved at bruge de to forskellige drivere ved at indlæse dem gennem separate klasseindlæsere:
// 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);
Gør derefter det samme for Oracle 12-driveren.
Du måske også stadig kunne bruge den "anden" driver gennem DriverManager
, men det er jeg ikke sikker på.
Der er nogle hjørnetilfælde, hvor det bliver en smule kompliceret at få adgang til Oracle-specifikke klasser, men generelt kan du bruge de forbindelser, der er oprettet gennem dette uden problemer.