从 Netbeans 连接到 H2

Connecting to H2 from Netbeans

我正在尝试在 Java (Netbeans) 中创建一个小型桌面应用程序,它在分发时附加了一个数据库(类似于带有用于存储数据的 mdb 文件的旧 VB6 应用程序)。

我已经创建了项目并将 H2-1.4.190.jar 放入我的项目文件中。我可以看到来自 Netbeans 的 H2*.jar 文件,就在我的主 class.

我下载了 SQL Workbench,创建了一个 table(名为 'Company')并放入了单行数据。

现在我需要(以某种方式)连接到数据库并从 Netbeans 中提取数据。 Google 对此帮助不大。我如何连接?如何检索(或 insert/edit)数据?任何帮助将不胜感激!

在您的 netbeans 项目中连接到 H2 数据库基本上与使用 JDBC 驱动程序和任何其他 IDE 连接到任何其他数据库相同。您将带有驱动程序的 jar 文件放入项目中,然后使用 jdbc 函数访问数据库或使用更高级别的 API 间接调用 jdbc 函数。 Netbeans 也可以自己连接到数据库,允许您使用 netbeans 作为替代 SQL Workbench for creating/viewing/editing tables.

在您的项目中使用:

  1. 下载 jar 文件:http://repo2.maven.org/maven2/com/h2database/h2/1.4.190/h2-1.4.190.jar
  2. Select Projects window.
  3. 你项目下的libraries文件夹
  4. 右键单击弹出菜单。
  5. Select Add Jar/Folder ...
  6. Select 您下载的 jar。
  7. 编写访问数据库的代码。

以下示例从名为 UNTITLED 的 table 中读取 /home/username/h2test.db 中的数据库文件,其中包含两列 timedescription.

Class.forName("org.h2.Driver");
try (Connection con = DriverManager.getConnection("jdbc:h2:/home/username/h2test")) {
    PreparedStatement stmt = con.prepareStatement("select * from UNTITLED");
    try(ResultSet rs = stmt.executeQuery()) {
        while(rs.next()) {
            Date d = rs.getDate("time");
            String description = rs.getString("description");
            System.out.println(d+", " + description);
        }
    }
}

只有 Class.forName("org.h2.Driver") 和 url jdbc:h2:/home/username/h2test 的确切形式特定于 H2。其余的将与 MySQL、SQLLITE、PostgreSQL、Derby 等

在 JDBC 上有一个教程:
https://docs.oracle.com/javase/tutorial/jdbc/

如果想直接使用Netbeans就edit/viewtables不用写程序了。

  1. 使用 Window -> 服务打开服务 window。
  2. 右键单击数据库从弹出菜单中选择 New Connection ...
  3. 在驱动程序第一个对话框的下拉列表中 select New Driver
  4. 将 h2-1.4.190.jar 文件添加到驱动程序文件中,然后单击下一步。
  5. 在下一个对话框中编辑 URL,用您的文件替换 <FILE>
  6. 单击“完成”。
  7. 服务 Window 中的新连接节点应该可用。右键单击它并选择连接。
  8. 展开节点以到达 Tables 文件夹。使用创建 Table 创建新的 table 或 select 现有的 table 并选择查看数据。