如何从 Java & H2 DB 连接到 H2 数据库
How to connect to H2 database from Java & H2 DB
我对 Eclipse 和 Java 还很陌生,目前正在从事一个需要实现我的第一个数据库的项目。
因此,我尝试连接Eclipse和H2数据库。虽然 H2 数据库部分本身工作得很好,但我不知道如何将它连接到 Eclipse。
我创建了以下 class 并尝试按照网站上的说明进行所有操作:
package srpTracking;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.h2.tools.DeleteDbFiles;
public class DatabaseConnector {
public static void main(String... args) throws Exception {
DeleteDbFiles.execute("~", "test", true);
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:~/test");
Statement stat = conn.createStatement();
stat.execute("create table test(id int primary key, name varchar(255))");
stat.execute("insert into test values(1, 'Hello')");
ResultSet rs;
rs = stat.executeQuery("select * from test");
while (rs.next()) {
System.out.println(rs.getString("name"));
}
}
stat.close();
conn.close();
}
我收到最后两行代码的标识符错误,但它也没有连接任何东西。
我将 H2.jar 文件复制到名为 lib 的子文件夹中的项目文件夹中。
不幸的是,由于某种原因我无法安装 DTP 插件,因为我显然缺少 'org.eclipse.core.runtime' 文件。
我的代码连接 Java 和 H2 需要更改什么?
另外,我是否需要将H2文件复制到特定文件夹中?
考虑对您的主文件进行这些更改。通过使用 try-with-resource,您可以将关闭委托给 JVM——还有一个额外的好处,即即使在出现异常的情况下,您也不需要关闭它们。
为什么以前没有用?您的变量运行 超出范围 - 您试图在 main() 结束后关闭。
public static void main(String... args) throws Exception {
DeleteDbFiles.execute("~", "test", true);
Class.forName("org.h2.Driver");
try (Connection conn = DriverManager.getConnection("jdbc:h2:~/test");
Statement stat = conn.createStatement()) {
stat.execute("create table test(id int primary key, name varchar(255))");
stat.execute("insert into test values(1, 'Hello')");
try (ResultSet rs = stat.executeQuery("select * from test")) {
while (rs.next()) {
System.out.println(rs.getString("name"));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
我对 Eclipse 和 Java 还很陌生,目前正在从事一个需要实现我的第一个数据库的项目。
因此,我尝试连接Eclipse和H2数据库。虽然 H2 数据库部分本身工作得很好,但我不知道如何将它连接到 Eclipse。
我创建了以下 class 并尝试按照网站上的说明进行所有操作:
package srpTracking;
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.h2.tools.DeleteDbFiles;
public class DatabaseConnector {
public static void main(String... args) throws Exception {
DeleteDbFiles.execute("~", "test", true);
Class.forName("org.h2.Driver");
Connection conn = DriverManager.getConnection("jdbc:h2:~/test");
Statement stat = conn.createStatement();
stat.execute("create table test(id int primary key, name varchar(255))");
stat.execute("insert into test values(1, 'Hello')");
ResultSet rs;
rs = stat.executeQuery("select * from test");
while (rs.next()) {
System.out.println(rs.getString("name"));
}
}
stat.close();
conn.close();
}
我收到最后两行代码的标识符错误,但它也没有连接任何东西。
我将 H2.jar 文件复制到名为 lib 的子文件夹中的项目文件夹中。
不幸的是,由于某种原因我无法安装 DTP 插件,因为我显然缺少 'org.eclipse.core.runtime' 文件。
我的代码连接 Java 和 H2 需要更改什么? 另外,我是否需要将H2文件复制到特定文件夹中?
考虑对您的主文件进行这些更改。通过使用 try-with-resource,您可以将关闭委托给 JVM——还有一个额外的好处,即即使在出现异常的情况下,您也不需要关闭它们。
为什么以前没有用?您的变量运行 超出范围 - 您试图在 main() 结束后关闭。
public static void main(String... args) throws Exception {
DeleteDbFiles.execute("~", "test", true);
Class.forName("org.h2.Driver");
try (Connection conn = DriverManager.getConnection("jdbc:h2:~/test");
Statement stat = conn.createStatement()) {
stat.execute("create table test(id int primary key, name varchar(255))");
stat.execute("insert into test values(1, 'Hello')");
try (ResultSet rs = stat.executeQuery("select * from test")) {
while (rs.next()) {
System.out.println(rs.getString("name"));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}