Программное встраивание базы данных Java h2
Вопрос
На данный момент мы используем HSQLDB как встроенная база данных, но мы ищем базу данных с меньшим объемом памяти по мере роста объема данных.
Дерби / JavaDB на данный момент это не вариант, поскольку он хранит свойства глобально в свойствах системы.Итак, мы подумали о ч2.
Используя HSQLDB, мы создали объект Сервер, установили параметры и запустили его.Это описано здесь (и приведен в качестве примера в классе org.hsqldb.test.TestBase).
Вопрос в том:Можно ли это сделать аналогично с базой данных h2?Есть ли у вас примеры кода для этого?Просканировав h2-страницу, я не нашел примера.
Решение
После загрузки я вижу, что файл учебник.html имеет это
import org.h2.tools.Server;
...
// start the TCP Server
Server server = Server.createTcpServer(args).start();
...
// stop the TCP Server
server.stop();
Другие советы
Да, вы можете запустить 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».
Если по какой -то причине вам нужна встроенная база данных H2 в режиме сервера, вы можете сделать это либо вручную, используя API в http://www.h2database.com/javadoc/org/h2/tools/Server.html - Или, придаваясь; auto_server = true для URL базы данных.