我的一些代码存在问题,我搜索并尝试了我所知道的一切,没有任何运气.
场景:
如果它不存在,应用程序将下载JDBC驱动程序并将其添加到ClassLoader,如下所示:( 注意:storageDataManager是我用于SQL方法的类)
File h2Driver = new File(directory.toString() + File.separator + "lib" + File.separator + "h2.jar");
if (h2Driver.exists()) {
URL[] url = new URL[0];
try {
url = new URL[]{h2Driver.toURI().toURL()};
storageDataManager.setClassLoader(new URLClassLoader(url));
} catch (MalformedURLException ignore) {}
}
Run Code Online (Sandbox Code Playgroud)当storageDataManager运行第一个查询时,它会尝试连接指定的驱动程序,如果它有一个ClassLoader,它会使用ClassLoader:
if (getClassLoader() != null) {
getLogging().debug("Loading custom class loader for H2 driver: " + getClassLoader().toString());
Driver driver = (Driver) Class.forName("org.h2.Driver", true, getClassLoader()).newInstance();
getLogging().debug("Loaded H2 driver: " + driver.toString() + " - " + driver.getMinorVersion() + " - " …Run Code Online (Sandbox Code Playgroud)