2008-09-30 2 views
28

В настоящее время мы используем HSQLDB в качестве встроенной базы данных, но мы ищем базу данных с меньшим объемом памяти при увеличении объема данных.Встраивание базы данных Java h2 программно

Derby/JavaDB В настоящий момент данный параметр не является опцией, поскольку он хранит свойства в глобальном масштабе в свойствах системы. Поэтому мы подумали о h2.

В то время как мы использовали HSQLDB, мы создали объект Server, установили параметры и запустили его. Это описано here (и приведено в качестве примера в классе org.hsqldb.test.TestBase).

Вопрос: Может ли это быть сделано аналогично базе данных h2? У вас есть образцы кода для этого? Сканирование h2-страницы, я не нашел примера.

ответ

24

Из загрузки, я вижу, что файл tutorial.html имеет этот

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

Да, вы можете запустить 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 в чисто встроенном режиме, вы также можете это сделать. Смотрите эту ссылку для более:

Вам просто нужно использовать специальный URL в обычном коде JDBC, как "JDBC: h2: MEM: Вход DB1".

+0

Мне нужно установить «свойства» справа, чтобы сказать: мне нужно - по крайней мере - установить каталог, в котором находится база данных. Именно по этой причине мы не можем использовать Derby/JavaDB, поскольку он использует системные свойства, как указано в вопросе. – Georgi 2008-10-01 01:41:55

Смежные вопросы