java - H2 找不到适合 jdbc:h2:mem 的驱动程序:
问题描述
我正在尝试使用 H2 的示例。但我无法创建内存数据库。当我运行以下程序时,我只收到一条错误消息:
java.sql.SQLException:在 java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702) 在 java.sql/java.sql.DriverManager.getConnection(DriverManager.getConnection) 中找不到适合 jdbc:h2:mem 的驱动程序。 java:251) 在 db.DBExample.main(DBExample.java:14)
在 pom.xml 我包括
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
<scope>test</scope>
</dependency>
有人知道出了什么问题吗?
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DBExample {
public static void main(String[] a) throws Exception {
var url = "jdbc:h2:mem:";
try (var con = DriverManager.getConnection(url);
var stm = con.createStatement();
var rs = stm.executeQuery("SELECT 1+1")) {
if (rs.next()) {
System.out.println(rs.getInt(1));
}
} catch (SQLException ex) {
var lgr = Logger.getLogger(DBExample.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
}
}
}
解决方案
问题是因为您指定了<scope>test</scope>
. 删除范围线。
此范围表示该依赖项对于应用程序的正常使用不是必需的,仅适用于测试编译和执行阶段。
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
</dependency>
看看这里:找不到驱动程序
推荐阅读
- ruby-on-rails - 改变设计更新方法和强大的参数?
- java - 为什么 (x – y <= j – k – 1) 评估为 FALSE?
- html - 根据窗口大小动态调整 html 元素的大小
- python - 如何在熊猫的列上应用公式
- php - PHP Laravel - 组合键 - 错误关系 *RECURSION*
- swift - 枚举Bundle中的sks文件
- java - 从字符串中删除停用词以创建集群
- python - 我可以在 iOS 应用程序中使用用 python 编写的聚类模型吗?
- c# - 如何使用 oracle 在 .net 框架控制台应用程序中创建实体数据模型?
- java - 不能让我的 JButtons 响应。除该面板外的所有内容都调整大小