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

Geo*_*rgi 31 java database embedding h2

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

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

当我们使用HSQLDB时,我们创建了一个Server-object,设置参数并启动它.这描述在这里(和如实施例中的类org.hsqldb.test.TestBase的给定).

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

Ale*_*ler 70

是的,您可以在嵌入模式下运行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
Run Code Online (Sandbox Code Playgroud)

将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();
Run Code Online (Sandbox Code Playgroud)

如果您希望在纯粹的内存/嵌入模式下使用H2,您也可以这样做.有关更多信息,请参阅此链

您只需要在普通的JDBC代码中使用特殊的URL,例如"jdbc:h2:mem:db1".


anj*_*anb 24

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

import org.h2.tools.Server;
...
// start the TCP Server
Server server = Server.createTcpServer(args).start();
...
// stop the TCP Server
server.stop();
Run Code Online (Sandbox Code Playgroud)


jav*_*csw 5

如果由于某种原因您需要在服务器模式下使用嵌入式H2数据库,您可以使用http://www.h2database.com/javadoc/org/h2/tools/Server.html上的API手动执行此操作- 或者通过附加; AUTO_SERVER =对数据库URL为TRUE.