【发布时间】:2020-06-29 15:30:58
【问题描述】:
我正在尝试通过 Java 连接到我的嵌入式 H2 数据库。我找到了关于这个的各种线程和教程,现在有这个代码:
Connection con = null;
Properties connectionProps = new Properties();
connectionProps.put("user", "username");
connectionProps.put("password", "password");
try {
Class.forName("org.h2.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
con = DriverManager.getConnection("jdbc:h2:~/test", connectionProps);
我收到“没有为 jdbc:h2:~/test 找到合适的驱动程序”错误消息。我在某些线程中找到了 Class.forName(...) 作为解决方案,但它似乎不起作用(ClassNotFoundException)。我到底需要做什么才能让它发挥作用?
编辑:将正确的 H2 驱动程序放入 Class.forname(); 我仍然得到相同的异常,并且在结束通知中链接的帖子也没有答案(实际上有同样的问题)。
【问题讨论】:
-
类路径中有 H2 数据库驱动程序吗?我注意到您正在尝试加载 MySQL JDBC 驱动程序,这在您想使用 H2 时当然不相关(尽管使用自动驱动程序加载,如果 H2 驱动程序位于类路径上,它将在简单的 Java 应用程序中工作)。请提供minimal reproducible example,包括您运行应用程序的方式。
-
如果要使用 H2,为什么要使用 MySQL 的驱动程序类和 URL 语法?
-
将其固定为
Class.forName("org.h2.Driver");仍然得到classnotfoundexception -
将您的类路径转储到控制台以查看它是否包含 H2。
-
我该怎么做?