Potrzebuję przetestować połączenie JDBC z bazą danych. Kod java powinien być tak prosty, jak:Jak używać sterownika JDBC z dowolnej lokalizacji
DriverManager.getConnection("jdbc connection URL", "username", "password");
Menedżer sterowników wyszuka odpowiedni sterownik dla danego adresu URL połączenia. Jednak muszę mieć możliwość załadowania sterownika JDBC (słoika) w czasie wykonywania. Nie mam sterownika JDBC w ścieżce klasy aplikacji java, która uruchamia fragment kodu powyżej.
Więc mogę załadować sterownika za pomocą tego kodu, na przykład:
URLClassLoader classLoader = new URLClassLoader(new URL[]{"jar URL"}, this.getClass().getClassLoader());
Driver driver = (Driver) Class.forName("jdbc driver class name", true, classLoader).newInstance();
Ale wówczas zarządca kierowca nadal nie będzie go podnieść, bo nie mogę tego powiedzieć, które classloader w użyciu. Próbowałem ustawić obiekt ładujący klasy kontekstowego bieżącego wątku i nadal nie działa.
Ktoś ma jakiś pomysł na najlepszy sposób, aby to osiągnąć?
Czy istnieje dobry powód, dla którego nie masz sterownika w ścieżce klas? –
Tak. Aplikacja może łączyć się z wieloma bazami danych. Ponadto nie mogę łączyć wszystkich sterowników ze względu na licencję. Co chcę osiągnąć, to proste okno dialogowe, w którym użytkownik może załadować słoik, gdy aplikacja jest uruchomiona. – SaM
Tam znowu myślałem, że jestem programistą po stronie serwera ... :) –