目前我们使用HSQLDB作为嵌入式数据库,但随着数据量的增长,我们会搜索内存占用较少的数据库.
Derby/JavaDB目前不是一个选项,因为它将属性全局存储在系统属性中.所以我们想到了h2.
当我们使用HSQLDB时,我们创建了一个Server-object,设置参数并启动它.这描述在这里(和如实施例中的类org.hsqldb.test.TestBase的给定).
问题是:这可以与h2数据库类似吗?你有代码样本吗?扫描h2页面,我没有找到一个例子.
是的,您可以在嵌入模式下运行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,您也可以这样做.有关更多信息,请参阅此链
http://www.h2database.com/html/features.html#in_memory_databases
您只需要在普通的JDBC代码中使用特殊的URL,例如"jdbc:h2:mem:db1".
从下载中,我看到文件tutorial.html有这个
import org.h2.tools.Server; ... // start the TCP Server Server server = Server.createTcpServer(args).start(); ... // stop the TCP Server server.stop();
如果由于某种原因您需要在服务器模式下使用嵌入式H2数据库,您可以使用http://www.h2database.com/javadoc/org/h2/tools/Server.html上的API手动执行此操作- 或者通过附加; AUTO_SERVER =对数据库URL为TRUE.