java - 以编程方式启动 H2 数据库

标签 java jdbc 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]

我关注了this article .

最佳答案

像这样的东西应该可以工作

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();
            }
        

输出是Connection Established: H2/STACKOVERFLOW

这已通过 h2-1.4.184 测试

关于java - 以编程方式启动 H2 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29183503/

相关文章:

java - 内存数据库中的 H2 在列名和我想要使用的值之间变得困惑

load - 将内存中的H2数据库保存到磁盘

java - makefile 中的 JDBC

java - 使用 JDBC 的标准当前时间函数

java - 通过自行实现的 crypter 类加密和解密对象

java - JTable 需要刷新才能显示更改

java - IN 中多个值的 jdbc preparedStatements

java - H2DB : How to retrieve the date of the server?

java - 整数数组 : fill with all combinations of numbers from one to a give number

java - 如何从字符串资源填充 RecyclerView