以编程方式启动H2数据库


问题内容

我正在用Java编写服务器-客户端应用程序的代码,我需要在服务器端实现本地数据库,因此我决定使用H2数据库引擎。

要添加的另一件事是,我使用TCP连接来启动和运行数据库。到目前为止,这是我整理的内容:

Class.forName("org.h2.Driver");  
Server server = Server.createTcpServer(DB_PATH).start();

Connection currentConn = DriverManager.getConnection(DB_PATH, DB_USER, DB_PASSWORD);

连接字符串在哪里jdbc:h2:tcp://localhost/~/test

这段代码返回一个异常:

Feature not supported: "jdbc:h2:tcp://localhost/~/test" [50100-176]

我关注了这篇文章


问题答案:

这样的事情应该工作

Server server = null;
            try {
                server = Server.createTcpServer("-tcpAllowOthers").start();
                Class.forName("org.h2.Driver");
                Connection conn = DriverManager.
                    getConnection("jdbc:h2:tcp://localhost/~/stackoverflow", "sa", "");
                System.out.println("Connection Established: "
                        + conn.getMetaData().getDatabaseProductName() + "/" + conn.getCatalog());

            } catch (Exception e) {
                e.printStackTrace();

并且输出是已建立的连接:H2 / STACKOVERFLOW

已通过h2-1.4.184测试