Wczoraj natknąłem się na duży problem. W moim obecnym projekcie używam ojdbc6 implementacji JDBC Oracle dla połączenia, ale także potrzebowałbym obsługiwać na przykład bazy danych Oracle 8, co jest całkowicie niemożliwe z tym JARem. Powiedziałbyś, że powinienem użyć na przykład ojdbc14, co było prawdą w przypadku niektórych testów, ale załóżmy, że później będę musiał obsługiwać 2 rodzaje baz danych od tego samego dostawcy, ale wiemy, że nie istnieje żadna istniejąca implementacja dla BOTH i muszę mieć załadowane te . Ten sam interfejs (i dobrze, nie tylko ten sam interfejs, ta sama struktura klasowa, tylko inne implementacje wewnątrz!), Ten sam prefiks połączenia URL -> Połączenie JDBC będzie używać jednego sterownika, ale nie mogę załadować wielu z nich. Co teraz?Obsługa wielu sterowników JDBC od SAMEGO VENDORA
Moim pierwszym pomysłem było załadować słoików z różnymi classloaders, mógłbym załadować taką samą strukturę pakietów z tych samych klas oddzielonych od siebie? Tak naprawdę nie sądzę, może to był mój głupi pomysł. Może to być również ogólny problem później, nie tylko ze sterownikami JDBC, więc nawet jeśli nie możesz odpowiedzieć na moje pytanie, ale wiesz, czego tu nie ma, proszę, powiedz
Nawet gdybym mógł wykonać oddzielne ładowanie implementacji klasowych te same nazwy klas, w jaki sposób mogę komunikować się z DriverManagerem podczas tworzenia połączenia, aby użyć sterownika EXACT zamiast znajdować go na podstawie prefiksu adresu URL połączenia? (gdzie mam na myśli jdbc: oracle: thin na przykład).
czuję się jak w sumie głupi teraz, ponieważ myślę, że nie jest to zupełnie niezwykły pomysł, aby obsłużyć w świecie Java, ale zupełnie nie wiem, jak obsługiwać.
Dzięki za was wszystkich z góry
Nie wiem, przy użyciu Oracle * 8 * jest dość niezwykłe. – skaffman