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

时间:2008-09-30 19:43:27

标签: java database embedding h2

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

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

当我们使用HSQLDB时,我们创建了一个Server-object,设置参数并启动它。这是here的描述(在org.hsqldb.test.TestBase类中作为示例给出)。

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

3 个答案:

答案 0 :(得分:69)

是的,您可以在嵌入模式下运行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”。

答案 1 :(得分:24)

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

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

答案 2 :(得分:5)

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