有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java以编程方式启动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


共 (1) 个答案

  1. # 1 楼答案

    这是我的简单H2 DBManager——只需将其文件名命名为DBManager。java并可以随意重用它:

    import java.sql.SQLException;
    
    import org.h2.tools.Server;
    
    public class DBManager {
    
        private static void startDB() throws SQLException {
            Server.createTcpServer("-tcpPort", "9092", "-tcpAllowOthers").start();
    
        }
    
        private static void stopDB() throws SQLException {
            Server.shutdownTcpServer("tcp://localhost:9092", "", true, true);
        }
    
        public static void main(String[] args) {
    
            try {
                Class.forName("org.h2.Driver");
    
                if (args.length > 0) {
                    if (args[0].trim().equalsIgnoreCase("start")) {
                        startDB();
                    }
    
                    if (args[0].trim().equalsIgnoreCase("stop")) {
                        stopDB();
                    }
                } else {
                    System.err
                            .println("Please provide one of following arguments: \n\t\tstart\n\t\tstop");
                }
    
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
    
    }