Обработка нескольких драйверов JDBC от ОДНОГО ПОСТАВЩИКА

Вчера я столкнулся с большой проблемой. В моем текущем проекте я использую ojdbc6 реализацию Oracle JDBC для соединения, но мне также нужно будет обрабатывать, например, базы данных oracle 8, что совершенно невозможно с этим JAR. Вы бы сказали, что я должен использовать ojdbc14, например, что было верно для некоторых тестов, но давайте предположим, что позже мне нужно будет обрабатывать 2 типа баз данных от одного и того же поставщика, но мы знаем, что нет существующей реализации для ОБА и мне нужно, чтобы они одновременно загружались.Тот же интерфейс (и, ну, не просто тот же интерфейс, та же структура классов, просто другая реализация внутри!), тот же префикс соединения URL -> соединение JDBC будет использовать один драйвер, но я не могу загрузить несколько из них. И что теперь?

  • Моя первая идея заключалась в том, чтобы загрузить JAR-файлы с помощью разных загрузчиков классов. Может быть, я мог бы загрузить ту же структуру пакета с одинаковыми классами, отделенными друг от друга? Я так не думаю, может быть, это была моя глупая идея. Позже это может стать общей проблемой не только с JDBC-драйверами, поэтому, даже если вы не можете ответить на мой вопрос, но знаете, чего здесь не хватает, сообщите мне

  • Даже если бы я мог сделать отдельную загрузку реализаций одного и того же класса имена классов, как я могу сказать DriverManager при создании соединения использовать драйвер EXACT вместо того, чтобы находить его на основе префикса URL-адреса соединения? (где я имею в виду, например, jdbc:oracle:thin).

Сейчас я чувствую себя полным тупицей, потому что думаю, что это не совсем экстраординарная идея, которую можно реализовать в мире Java, НО я совершенно не знаю, как с ней справиться.

Заранее всем спасибо

5
задан newhouse 7 March 2012 в 07:50
поделиться