在运行时加载JDBC驱动程序
|
我正在使用以下代码加载驱动程序类:
public class DriverLoader extends URLClassLoader {
private DriverLoader(URL[] urls) {
super(urls);
File driverFolder = new File(\"driver\");
File[] files = driverFolder.listFiles();
for (File file : files) {
try {
addURL(file.toURI().toURL());
} catch (MalformedURLException e) {
}
}
}
private static DriverLoader driverLoader;
public static void load(String driverClassName) throws ClassNotFoundException {
try {
Class.forName(driverClassName);
} catch (ClassNotFoundException ex) {
if (driverLoader == null) {
URL urls[] = {};
driverLoader = new DriverLoader(urls);
}
driverLoader.loadClass(driverClassName);
}
}
}
尽管该类可以很好地加载,但是无论我尝试使用哪种驱动程序,我都无法建立数据库连接(找不到适合的驱动程序...)。
我认为这是因为我没有使用Class.forName加载驱动程序类(因为我正在使用自己的ClassLoader,所以无法使用)。我怎样才能解决这个问题?
没有找到相关结果
已邀请:
3 个回复
久纳禾澎
拥有实例后,您可以使用该实例进行连接:
或者,如果要继续使用DriverManager,则必须手动在DriverManager中注册驱动程序:
然后,您应该能够使用DriverManager建立连接。 如果我没记错的话,如果驱动程序本身未由与DriverManager相同的类加载器加载,则DriverManager会拒绝连接。如果仍然如此,则需要直接使用Driver.connect()。
脾萌
藕挝