如何在控制台中连接到WebServer模式H2数据库?

Gar*_*ett 5 h2

在H2文档中,它表示只有Web服务器支持浏览器连接.这是否意味着我们只能在WebServer模式下通过控制台访问H2数据库,而不是TcpServer?但是,当我在下面进行测试时,结果完全不如预期.

public class TestMem {
    public static void main(String... args) throws Exception {

        Class.forName("org.h2.Driver");
        Connection conn = DriverManager.getConnection("jdbc:h2:mem:test");
        conn.createStatement().execute("create table test(id int)");

        Server server = Server.createTcpServer().start();//1.TcpServer
//      Server server = Server.createWebServer().start();//2.WebServer

        System.out.println("Server started and connection is open.");
        System.out.println("URL: jdbc:h2:" + server.getURL() + "/mem:test");

        Thread.sleep(5*60*1000);

        System.out.println("Stopping server and closing the connection");
        server.stop();
        conn.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我启动一个TcpServer,我可以通过这个url访问数据库:jdbc:h2:tcp:// localhost:9092/mem:test in console.

//Use TcpServer
  Server server = Server.createTcpServer().start();
Run Code Online (Sandbox Code Playgroud)

但是当我启动WebServer时,我尝试连接使用jdbc:h2:http:// localhost:8082/mem:test,下面将抛出异常:IO例外:"java.io.IOException:文件名,目录名或者卷标语法不正确"; "http:// localhost:8082/mem:test.h2.db"[90031-172] 90031/90031(帮助).

//Use WebServer
  Server server = Server.createWebServer().start();
Run Code Online (Sandbox Code Playgroud)

这是我的问题

  1. 我们可以在控制台中访问WebServer模式h2 DataBase吗?怎么样?
  2. 我是否误解了有关使用服务器部分的H2文档?

Tho*_*ler 5

H2控制台工具(使用创建的Server.createWebServer)是一个Web服务器和一个小型Web应用程序,允许您连接到使用Web浏览器数据库(任何JDBC数据库)(如Firefox,谷歌Chrome,IE浏览器,等等).

H2 TCP服务器(使用创建的Server.createTcpServer)是H2 JDBC客户端的服务器.它不是Web服务器,也不是Web应用程序.您无法从Web浏览器连接到此服务器.

如果同时启动控制台工具(Web服务器)和TCP服务器,则可以使用浏览器连接到控制台工具,然后可以在服务器模式下连接到H2数据库.

关于数据库URL:请参阅有关数据库URL文档.