sql >> Database >  >> RDS >> Oracle

Meerdere Oracle JDBC-stuurprogramma's gebruiken in één Java-toepassing?

Als u de stuurprogramma's niet registreert, voorkomt u dat ze door dezelfde classloader worden geladen.

Vervolgens kunt u verbindingen maken met behulp van de twee verschillende stuurprogramma's door ze via afzonderlijke classloaders te laden:

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

Doe vervolgens hetzelfde voor de Oracle 12-driver.

Je misschien ook nog steeds het "andere" stuurprogramma kunnen gebruiken via DriverManager , maar daar ben ik niet zeker van.

Er zijn enkele gevallen waarin toegang tot Oracle-specifieke klassen een beetje ingewikkeld wordt, maar over het algemeen kunt u de verbindingen die hierdoor worden gemaakt zonder problemen gebruiken.



  1. Actieve record Update alle JSON-velden

  2. De vraag voor het berekenen van de afstand bleef steken in de PostgresDB

  3. Wijs eerst de Guid-eigenschap toe aan Oracle in Entity Framework Code

  4. Slaapstand Word lid van twee niet-gerelateerde tabellen wanneer beide een samengestelde primaire sleutel hebben