Je dois tester une connexion JDBC à une base de données. Le code Java pour le faire doit être aussi simple que:Comment utiliser un pilote JDBC à partir d'un emplacement arbitraire
DriverManager.getConnection("jdbc connection URL", "username", "password");
Le gestionnaire de pilote rechercher le pilote approprié pour le l'URL de connexion donnée. Cependant, j'ai besoin de pouvoir charger le pilote JDBC (jar) au moment de l'exécution. I.e Je n'ai pas le pilote JDBC sur le chemin de classe de l'application Java qui exécute l'extrait de code ci-dessus.
Je peux charger le pilote en utilisant ce code, par exemple:
URLClassLoader classLoader = new URLClassLoader(new URL[]{"jar URL"}, this.getClass().getClassLoader());
Driver driver = (Driver) Class.forName("jdbc driver class name", true, classLoader).newInstance();
Mais le gestionnaire de pilotes encore ne ramasser que je ne peux pas dire que ce qui classloader à utiliser. J'ai essayé de définir le classloader de contexte du thread actuel et cela ne fonctionne toujours pas.
Quelqu'un a une idée sur la meilleure façon d'y parvenir?
Y a-t-il une bonne raison pour laquelle vous n'avez pas le pilote sur le classpath? –
Oui. L'application peut se connecter à de nombreuses bases de données. De plus, je ne peux pas regrouper tous les pilotes pour des raisons de licence. Ce que je veux réaliser est une boîte de dialogue simple pour que l'utilisateur charge le pot pendant que l'application fonctionne. – SaM
Là, je pensais à nouveau comme un développeur côté serveur ... :) –