10.02.2010
Последняя редакция от 22.12.2025
Иванов Аркадий
Также, как и Apache Derby, H2 - это SQL-база на чистой Java, легко встраиваемая в приложение. В описании предполагаю, что используется сервер приложений Tomcat.
- Готовую систему, описания и исходники следует брать на официальном сайте: http://h2database.com
- Из zip-архива вытаскиваю файл h2-1.3.150.jar (или уже более свежую версию) и укладываю в каталог ./lib сервера приложений.
- В Java-программе класс драйвера называется:
String driver = "org.h2.Driver";
URL к базе testbase в Java-программе выглядит так:
String connectionURL = "jdbc:h2:file:path-to-db_file;AUTO_SERVER=TRUE";
Если файла базы ещё нет, он будет создан.
- H2 обладает удобной встроенной консолью для управления базой, доступ к которой можно получить с любого броузера.
При использовании embegged драйвера надо указать сервлет консоли в сервере приложений (файл web.xml) :
<servlet>
<servlet-name>h2</servlet-name>
<servlet-class>org.h2.server.web.WebServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>h2</servlet-name>
<url-pattern>/console/*</url-pattern>
</servlet-mapping> - Довольно интересное сравнение производительности с другими открытыми базами (Postgres, MySQL) приводится на сайте.
В 2015 году попробовал сравнить на своём приложении скорость записи в базу с Derby SQL. То, что Derby делала за 2 минуты, H2 сделала за 3 секунды. Нехило!
Для Spring Boot настройки в application.properties:
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:file:/home/test/h2db
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=login
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
Для Maven:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>