gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:11:34 26 4
gpt4 key购买 nike

在 H2 文档中,它说 only the web server supports browser connections .这是否意味着我们只能在 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();
}
}

如果我启动一个 TcpServer,我可以通过这个 url 访问数据库:jdbc:h2:tcp://localhost:9092/mem:test in console。
//Use TcpServer
Server server = Server.createTcpServer().start();

但是当我启动一个 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();

这是我的问题
  • 我们可以在控制台中访问 WebServer 模式的 h2 数据库吗?如何?
  • 我是否误解了有关 的 H2 文档?使用服务器 部分?
  • 最佳答案

    H2 Console tool (使用 Server.createWebServer 创建)是一个 Web 服务器和一个小型 Web 应用程序,它允许您使用 Web 浏览器(例如 Firefox、Google Chrome、Internet Explorer 等)连接到数据库(任何 JDBC 数据库)。

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

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

    关于数据库 URL:参见 documentation about database URLs .

    关于h2 - 如何在控制台中连接到 WebServer 模式的 H2 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20768931/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com