Nếu bạn không đăng ký các trình điều khiển, bạn sẽ tránh được việc chúng được tải bởi cùng một trình tải lớp.
Sau đó, bạn có thể tạo kết nối bằng cách sử dụng hai trình điều khiển khác nhau bằng cách tải chúng qua các trình tải lớp riêng biệt:
// 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);
Sau đó, làm tương tự cho trình điều khiển Oracle 12.
Bạn có thể cũng có thể vẫn sử dụng trình điều khiển "khác" thông qua DriverManager
, nhưng tôi không chắc về điều đó.
Có một số trường hợp góc mà việc truy cập các lớp cụ thể của Oracle hơi phức tạp, nhưng nói chung, bạn có thể sử dụng các kết nối được tạo thông qua việc này mà không gặp bất kỳ sự cố nào.