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

发布于 2024-07-05 17:52:59 字数 550 浏览 12 评论 0原文

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

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

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

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

At the moment we use HSQLDB as an embedded database, but we search for a database with less memory footprint as the data volume grows.

Derby / JavaDB is not an option at the moment because it stores properties globally in the system properties. So we thought of h2.

While we used HSQLDB we created a Server-object, set the parameters and started it. This is described here (and given as example in the class org.hsqldb.test.TestBase).

The question is: Can this be done analogous with the h2 database, too? Do you have any code samples for that? Scanning the h2-page, I did not find an example.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

苄①跕圉湢 2024-07-12 17:52:59

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

该数据库可用于嵌入式
模式,或服务器模式。 要将其用于
嵌入模式,您需要:

* 将 h2.jar 添加到类路径 
  * 使用JDBC驱动类:org.h2.Driver 
  * 数据库 URL jdbc:h2:~/test 打开用户主目录中的数据库“test” 
  

使用 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”。

Yes, you can run H2 in embedded mode. You just use the JDBC driver and connect to an embedded url like this (their example):

This database can be used in embedded
mode, or in server mode. To use it in
embedded mode, you need to:

* 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

Example of connecting with JDBC to an embedded H2 database (adapted from 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();

If you're looking to use H2 in a purely in-memory / embedded mode, you can do that too. See this link for more:

You just need to use a special URL in normal JDBC code like "jdbc:h2:mem:db1".

万劫不复 2024-07-12 17:52:59

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

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

From the download, I see that the file tutorial.html has this

import org.h2.tools.Server;
...
// start the TCP Server
Server server = Server.createTcpServer(args).start();
...
// stop the TCP Server
server.stop();
错々过的事 2024-07-12 17:52:59

如果由于某种原因您需要服务器模式下的嵌入式 H2 数据库,您可以使用 API 手动完成
http://www.h2database.com/javadoc/org/h2/ tools/Server.html - 或通过
将 ;AUTO_SERVER=TRUE 附加到数据库 URL。

If for some reason you need an embedded H2 database in server mode you can do it either manually using the API
at http://www.h2database.com/javadoc/org/h2/tools/Server.html - or by
appending ;AUTO_SERVER=TRUE to the database URL.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文