首页 > 解决方案 > 在 JAVA 中创建的 H2 数据库在 H2 控制台中找不到?

问题描述

目前有一个简单的 Java 程序可以创建一个 H2 数据库,如下所示:

public static void main(String[] args) {
try {
    Connection conn = null;
    Statement stm = null;
    Class.forName("org.h2.Driver");
    conn = DriverManager.getConnection("jdbc:h2:D:/H2db/test", "sa", "sa");
    stm = conn.createStatement();
} catch (SQLException | ClassNotFoundException e) {
    e.printStackTrace();
}

我看到在目录中创建的文件。然而,当尝试从 H2 控制台 ( localhost:8082) 访问同一个数据库并同时输入 jdbc:h2:D:/H2db/testandjdbc:h2:D:\H2db\test时,我收到一条错误消息:

Database `D:/H2db/test` not found, either pre-create it or 
allow remote database creation (not recommended in secure environments)

有人知道为什么我不能通过控制台访问数据库吗?

标签: javadatabaseh2

解决方案


那段代码仅用于连接到以前创建的数据库。要成功连接到它,您应该首先创建它。

$ java -cp bin/h2-1.4.199.jar org.h2.tools.Shell
Welcome to H2 Shell 1.4.199 (2019-03-13)
Exit with Ctrl+C
[Enter]   jdbc:h2:mem:test
URL       jdbc:h2:D:/h2db/test
[Enter]   org.h2.Driver
Driver    
[Enter]   sa
User      
Password

然后,只有这样,您才能通过您的 java 应用程序连接到它。


推荐阅读