【问题标题】:Why Am I Getting a "Database may be already in use: null" Error for H2 Database That I Just Implemented?为什么我刚刚实现的 H2 数据库出现“数据库可能已在使用:null”错误?
【发布时间】:2017-11-12 15:36:54
【问题描述】:

我正在整理一个小型 Java 应用程序,我想使用嵌入式数据库,所以我使用 H2。我按照教程进行了设置,并在第一次运行时进行了测试,看看它是否有效。我以前从未运行过它,所以它实际上并没有被使用,当我第一次运行它时它仍然抛出以下错误。

org.h2.jdbc.JdbcSQLException:数据库可能已在使用中:null。可能的解决方案:关闭所有其他连接;使用服务器模式[90020-196]

这是我写的。

它附在表单的提交按钮上。

    JButton btnRegisterupdate = new JButton("Register/Update");
    btnRegisterupdate.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0){

            try {
                Class.forName("org.h2.Driver");
                Connection connection = DriverManager.getConnection("jdbc:h2:~/test", "sa", " ");

                JOptionPane.showMessageDialog(null, "Connection Awesome");
            } catch (ClassNotFoundException  | SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }  

        }
    });
    btnRegisterupdate.setBounds(10, 243, 146, 23);
    frame.getContentPane().add(btnRegisterupdate);
}
}

【问题讨论】:

  • 我在这里冒险猜测一下:当你按下按钮和释放它时,你正在打开一个连接。
  • 我能做些什么来解决这个问题?
  • 请发帖minimal reproducible example。您应该发布足够多的代码,以便任何人都可以自己复制和运行它,并获得您所询问的完全相同的行为。还要确保不包含任何与您的问题无关的不相关代码。通常,开始一个新项目并编写一个简单的示例来说明您的问题会很有帮助。这有助于您忽略整个程序中的任何不相关的细节。
  • 已经修复。见下文。

标签: java h2


【解决方案1】:

运行 bin 文件夹中的可执行 jar 文件。这将在浏览器中打开。单击服务器设置下拉菜单并将其更改为通用 H2(服务器)。以前它被设置为 Generic H2(Embedded),这就是为什么它对我不起作用。

【讨论】:

    【解决方案2】:

    好的,因此有关此操作的说明要求用户转到登录页面并单击连接。除非您单击断开连接,否则这将保持打开状态。教程中没有任何地方说。单击连接进行设置后,在浏览器版本中单击断开连接。

    这就是你必须做的。

    单击连接进行设置,它会将您带到另一个屏幕,您可以在其中创建表格等等,但是当您在那里完成后,断开连接。

    【讨论】:

      猜你喜欢
      • 2012-12-15
      • 1970-01-01
      • 2022-12-20
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 2011-04-17
      • 2011-12-30
      • 1970-01-01
      相关资源
      最近更新 更多