小编Con*_*tex的帖子

Java:没有为jdbc:h2找到合适的驱动程序

我的一些代码存在问题,我搜索并尝试了我所知道的一切,没有任何运气.


场景:

  • 应用程序检查是否存在JDBC驱动程序,在本例中为H2驱动程序(org.h2.Driver).
  • 如果它不存在,应用程序将下载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)

java jdbc h2 classloader

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

classloader ×1

h2 ×1

java ×1

jdbc ×1