sql >> Databasteknik >  >> RDS >> Oracle

Använder du flera Oracle JDBC-drivrutiner i en Java-applikation?

Om du inte registrerar drivrutinerna undviker du att de laddas av samma klassladdare.

Sedan kan du skapa anslutningar med de två olika drivrutinerna genom att ladda dem genom separata klassladdare:

// 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 sedan samma sak för Oracle 12-drivrutinen.

Du kanske även fortfarande kunna använda den "andra" drivrutinen genom DriverManager , men jag är inte säker på det.

Det finns några hörnfall där det blir lite komplicerat att komma åt Oracle-specifika klasser, men i allmänhet kan du använda de anslutningar som skapats genom detta utan problem.



  1. Hur hånar du MySQL (utan ORM) i Node.js?

  2. Skapa ett tilläggstest i postgresql

  3. SQL OVER()-satsen - när och varför är den användbar?

  4. Hur kombinerar jag data från två separata tabeller till en enda markör?