Я хочу подключиться к двум различным базам данных Oracle (один 8.0.5.0.0 и один 12c) через JDBC. У меня есть оба драйвера JDBC, которые могут индивидуально и успешно подключаться к соответствующей БД через простые приложения «привет мир». Ниже я поместил их вместе в одно приложение Java, которое, к сожалению, больше не работает (с загрузкой обоих драйверов).Использование нескольких драйверов JDBC Oracle в одном приложении Java?
Я прочитал это сообщение: Handle multiple JDBC drivers from the SAME VENDOR. Вариант 1, упомянутый здесь, может быть, может идти, но, похоже, есть одна серьезная проблема:
Похоже, что OracleDataSource
еще не существует в старой версии 8 и был введен только в более поздних версиях (в 12c версия драйвера существует).
Любые подсказки о том, как подключиться к этим двум базам данных Oracle с помощью одного приложения Java и двух драйверов JDBC?
import java.sql.*;
class db {
public static void main (String args []) throws SQLException {
// Oracle 8 connection
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection c1 = DriverManager.getConnection(
"jdbc:oracle:thin:@some-oracle-8-server:port:sid",
"my-user",
"my-password");
Statement s1 = c1.createStatement();
ResultSet r1 = s1.executeQuery ("SELECT banner FROM V$VERSION WHERE banner LIKE 'Oracle%'");
while (r1.next()) {
System.out.println(r1.getString (1));
}
c1.close();
// Oracle 12 connection
Connection c2 = DriverManager.getConnection(
"jdbc:oracle:thin:@some-oracle-12-server:port:sid",
"my-user",
"my-password");
Statement s2 = c2.createStatement();
ResultSet r2 = s2.executeQuery ("SELECT banner FROM V$VERSION WHERE banner LIKE 'Oracle%'");
while (r2.next()) {
System.out.println(r2.getString (1));
}
c2.close();
}
}
Спасибо, adavnce!
мм Я бы использовал последний драйвер для обоих соединений и просто определил 2 отдельных источника данных. Совместимость драйверов AFAIK jdbc довольно прочная. – BigMike
Я глуп, но драйверы оракулов обратно совместимы. Последний драйвер не работает для устаревшей базы данных? – Gimby
Драйвер 12c не будет работать с базой данных 8i, нет; они обратно совместимы, но только до определенной точки. См. [Часто задаваемые вопросы JDBC] (http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-faq-090281.html#01_03) и [примечание поддержки Oracle 207303.1] (http://support.oracle .com/epmos/faces/DocumentDisplay? id = 207303.1) –