Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Usando vários drivers Oracle JDBC em um aplicativo Java?


Se você não registrar os drivers, você evita que eles sejam carregados pelo mesmo classloader.

Em seguida, você pode criar conexões usando os dois drivers diferentes, carregando-os por meio de carregadores de classe separados:
// 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);

Em seguida, faça o mesmo para o driver Oracle 12.

Você pode também poder usar o "outro" driver através do DriverManager , mas não tenho certeza disso.

Existem alguns casos de canto em que acessar classes específicas do Oracle fica um pouco complicado, mas em geral você pode usar as conexões criadas por meio disso sem problemas.