以编程方式嵌入 Java h2 数据库

2022-09-01 07:08:18

目前,我们使用 HSQLDB 作为嵌入式数据库,但随着数据量的增长,我们搜索内存占用较少的数据库。

Derby / JavaDB目前不是一个选项,因为它将属性全局存储在系统属性中。所以我们想到了h2

当我们使用HSQLDB时,我们创建了一个Server对象,设置参数并启动它。这里对此进行了描述(并在类 org.hsqldb.test.TestBase 中作为示例给出)。

问题是:这也可以与h2数据库类似吗?你有什么代码示例吗?扫描h2页面,我没有找到一个例子。


答案 1

是的,您可以在嵌入式模式下运行 H2。您只需使用JDBC驱动程序并连接到如下所示的嵌入式URL(示例):

此数据库可以在嵌入式模式或服务器模式下使用。要在嵌入式模式下使用它,您需要:

* Add h2.jar to the classpath
* Use the JDBC driver class: org.h2.Driver
* The database URL jdbc:h2:~/test opens the database 'test' in your user home directory

使用 JDBC 连接到嵌入式 H2 数据库的示例(改编自 http://www.h2database.com/javadoc/org/h2/jdbcx/JdbcDataSource.html):

import org.h2.jdbcx.JdbcDataSource;
// ...
JdbcDataSource ds = new JdbcDataSource();
ds.setURL("jdbc:h2:˜/test");
ds.setUser("sa");
ds.setPassword("sa");
Connection conn = ds.getConnection();

如果您希望在纯内存/嵌入式模式下使用H2,您也可以这样做。请参阅此链接了解更多信息:

你只需要在普通的JDBC代码中使用一个特殊的URL,比如“jdbc:h2:mem:db1”。


答案 2

从下载中,我看到文件教程.html有这个

import org.h2.tools.Server;
...
// start the TCP Server
Server server = Server.createTcpServer(args).start();
...
// stop the TCP Server
server.stop();

推荐