sql >> Base de Datos >  >> RDS >> Oracle

¿Utiliza múltiples controladores Oracle JDBC en una aplicación Java?

Si no registra los controladores, evita que los cargue el mismo cargador de clases.

Luego puede crear conexiones utilizando los dos controladores diferentes cargándolos a través de cargadores de clases 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);

Luego haga lo mismo con el controlador Oracle 12.

Usted podría también podrá seguir usando el "otro" controlador a través de DriverManager , pero no estoy seguro de eso.

Hay algunos casos extremos en los que acceder a clases específicas de Oracle se vuelve un poco complicado, pero en general puede usar las conexiones creadas a través de esto sin ningún problema.